X-Git-Url: https://diplodocus.org/git/xorg-xinput/blobdiff_plain/e3b705dc15d07bbb478ced6b54a5e0553d978113..82d338548e22ae271f50592e759794dd7536a207:/src/setcp.c diff --git a/src/setcp.c b/src/setcp.c index 582d978..7a28644 100644 --- a/src/setcp.c +++ b/src/setcp.c @@ -32,9 +32,8 @@ int set_clientpointer(Display* dpy, int argc, char** argv, char* name, char *desc) { + XIDeviceInfo *info; XID window; - XID deviceid; - XDevice* dev = NULL; char* id; char* dummy; @@ -49,14 +48,14 @@ 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 = xi2_find_device_info(dpy, argv[1]); - if (!dev) - { - fprintf(stderr, "Cannot open device %ld.\n", deviceid); - } else - XSetClientPointer(dpy, window, dev); + if (!info) { + fprintf(stderr, "unable to find device %s\n", argv[1]); + return EXIT_FAILURE; + } + + XISetClientPointer(dpy, window, info->deviceid); return 0; }