]> diplodocus.org Git - xorg-xinput/blobdiff - src/test_xi2.c
xinput 1.5.2
[xorg-xinput] / src / test_xi2.c
index 6dab0dc8a43e75eae4de1d638eaee9e58410673d..9ddb2912340a95def1aa73888ce0d2b185df7817 100644 (file)
@@ -48,6 +48,7 @@ static void print_deviceevent(XIDeviceEvent* event)
 
     printf("    device: %d (%d)\n", event->deviceid, event->sourceid);
     printf("    detail: %d\n", event->detail);
+    printf("    flags: %s\n", (event->flags & XIKeyRepeat) ? "repeat" : "");
 
     printf("    root: %.2f/%.2f\n", event->root_x, event->root_y);
     printf("    event: %.2f/%.2f\n", event->event_x, event->event_y);
@@ -152,7 +153,7 @@ static void print_enterleave(XILeaveEvent* event)
     char *mode, *detail;
     int i;
 
-    printf("    device: %d\n", event->deviceid);
+    printf("    device: %d (%d)\n", event->deviceid, event->sourceid);
     printf("    windows: root 0x%lx event 0x%lx child 0x%ld\n",
             event->root, event->event, event->child);
     switch(event->mode)
@@ -257,6 +258,35 @@ test_sync_grab(Display *display, Window win)
     printf("Done\n");
 }
 
+static const char* type_to_name(int evtype)
+{
+    const char *name;
+
+    switch(evtype) {
+        case XI_DeviceChanged:    name = "DeviceChanged";       break;
+        case XI_KeyPress:         name = "KeyPress";            break;
+        case XI_KeyRelease:       name = "KeyRelease";          break;
+        case XI_ButtonPress:      name = "ButtonPress";         break;
+        case XI_ButtonRelease:    name = "ButtonRelease";       break;
+        case XI_Motion:           name = "Motion";              break;
+        case XI_Enter:            name = "Enter";               break;
+        case XI_Leave:            name = "Leave";               break;
+        case XI_FocusIn:          name = "FocusIn";             break;
+        case XI_FocusOut:         name = "FocusOut";            break;
+        case XI_HierarchyChanged: name = "HierarchyChanged";    break;
+        case XI_PropertyEvent:    name = "PropertyEvent";       break;
+        case XI_RawKeyPress:      name = "RawKeyPress";         break;
+        case XI_RawKeyRelease:    name = "RawKeyRelease";       break;
+        case XI_RawButtonPress:   name = "RawButtonPress";      break;
+        case XI_RawButtonRelease: name = "RawButtonRelease";    break;
+        case XI_RawMotion:        name = "RawMotion";           break;
+        default:
+                                  name = "unknown event type"; break;
+    }
+    return name;
+}
+
+
 int
 test_xi2(Display       *display,
          int   argc,
@@ -303,10 +333,10 @@ test_xi2(Display  *display,
         XISetMask(mask.mask, XI_Motion);
         XIGrabButton(display, 2, 1, win, None, GrabModeAsync, GrabModeAsync,
                 False, &mask, nmods, modifiers);
-        XIGrabKeysym(display, 3, 0x71, win, GrabModeAsync, GrabModeAsync,
+        XIGrabKeycode(display, 3, 24 /* q */, win, GrabModeAsync, GrabModeAsync,
                 False, &mask, nmods, modifiers);
         XIUngrabButton(display, 3, 1, win, nmods - 2, &modifiers[2]);
-        XIUngrabKeysym(display, 3, 0x71, win, nmods - 2, &modifiers[2]);
+        XIUngrabKeycode(display, 3, 24 /* q */, win, nmods - 2, &modifiers[2]);
     }
 
     mask.deviceid = XIAllMasterDevices;
@@ -340,7 +370,7 @@ test_xi2(Display    *display,
             cookie->type == GenericEvent &&
             cookie->extension == xi_opcode)
         {
-            printf("EVENT type %d\n", cookie->evtype);
+            printf("EVENT type %d (%s)\n", cookie->evtype, type_to_name(cookie->evtype));
             switch (cookie->evtype)
             {
                 case XI_DeviceChanged: