]> diplodocus.org Git - xorg-xinput/blobdiff - src/setcp.c
Require inputproto 1.9.99.12
[xorg-xinput] / src / setcp.c
index 582d978c001f5d53ae17723fbbf597aa8ff164c1..7a2864479cf7b195bc785226d70f56b6656391f3 100644 (file)
@@ -32,9 +32,8 @@
 int
 set_clientpointer(Display* dpy, int argc, char** argv, char* name, char *desc)
 {
 int
 set_clientpointer(Display* dpy, int argc, char** argv, char* name, char *desc)
 {
+    XIDeviceInfo *info;
     XID window;
     XID window;
-    XID deviceid;
-    XDevice* dev = NULL;
     char* id;
     char* dummy;
 
     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);
     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;
 }
     return 0;
 }