X-Git-Url: https://diplodocus.org/git/xorg-xinput/blobdiff_plain/a6feac1e18cdeffc42bc992faa8c95eaec420378..86cab0389d9a02901c82e2072e4043a404fb2ebc:/src/setcp.c diff --git a/src/setcp.c b/src/setcp.c index 582d978..e44bb00 100644 --- a/src/setcp.c +++ b/src/setcp.c @@ -32,8 +32,8 @@ int set_clientpointer(Display* dpy, int argc, char** argv, char* name, char *desc) { + XDeviceInfo* info; XID window; - XID deviceid; XDevice* dev = NULL; char* id; char* dummy; @@ -49,13 +49,19 @@ set_clientpointer(Display* dpy, int argc, char** argv, char* name, char *desc) while(*id == '0') id++; window = strtol(argv[0], &dummy, (*id == 'x') ? 16 : 10); - deviceid = atol(argv[1]); - dev = XOpenDevice(dpy, deviceid); + info = find_device_info(dpy, argv[1], False); + + if (!info) { + fprintf(stderr, "unable to find device %s\n", argv[1]); + return EXIT_FAILURE; + } + + dev = XOpenDevice(dpy, info->id); if (!dev) { - fprintf(stderr, "Cannot open device %ld.\n", deviceid); + fprintf(stderr, "Cannot open device %s.\n", argv[1]); } else XSetClientPointer(dpy, window, dev); return 0;