]> diplodocus.org Git - xorg-xinput/commitdiff
Print out hierarchy events
authorPeter Hutterer <peter.hutterer@who-t.net>
Sun, 8 Mar 2009 07:41:23 +0000 (17:41 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Sat, 21 Mar 2009 12:18:42 +0000 (22:18 +1000)
src/test_xi2.c

index dbd710297c010f55b96df7176c36ad5c06714e2b..c7291259afa6c2309a64dad2f8592e8ed27afc11 100644 (file)
@@ -79,6 +79,39 @@ static void print_devicechangedevent(Display *dpy, XIDeviceChangedEvent *event)
     print_classes_xi2(dpy, event->classes, event->num_classes);
 }
 
     print_classes_xi2(dpy, event->classes, event->num_classes);
 }
 
+static void print_hierarchychangedevent(XIDeviceHierarchyEvent *event)
+{
+    int i;
+    printf("    Changes happened: %s %s %s %s %s %s %s\n",
+            (event->flags & HF_MasterAdded) ? "[new master]" : "",
+            (event->flags & HF_MasterRemoved) ? "[master removed]" : "",
+            (event->flags & HF_SlaveAdded) ? "[new slave]" : "",
+            (event->flags & HF_SlaveRemoved) ? "[slave removed]" : "",
+            (event->flags & HF_SlaveAttached) ? "[slave attached]" : "",
+            (event->flags & HF_DeviceEnabled) ? "[device enabled]" : "",
+            (event->flags & HF_DeviceDisabled) ? "[device disabled]" : "");
+
+    for (i = 0; i < event->num_devices; i++)
+    {
+        char *use;
+        switch(event->info[i].use)
+        {
+            case MasterPointer: use = "master pointer";
+            case MasterKeyboard: use = "master keyboard"; break;
+            case SlavePointer: use = "slave pointer";
+            case SlaveKeyboard: use = "slave keyboard"; break;
+            case FloatingSlave: use = "floating slave"; break;
+                break;
+        }
+
+        printf("    device %d [%s (%d)] is %s\n",
+                event->info[i].deviceid,
+                use,
+                event->info[i].attachment,
+                (event->info[i].enabled) ? "enabled" : "disabled");
+    }
+}
+
 
 int
 test_xi2(Display       *display,
 
 int
 test_xi2(Display       *display,
@@ -117,6 +150,9 @@ test_xi2(Display    *display,
                     print_devicechangedevent(display,
                                              (XIDeviceChangedEvent*)event);
                     break;
                     print_devicechangedevent(display,
                                              (XIDeviceChangedEvent*)event);
                     break;
+                case XI_HierarchyChanged:
+                    print_hierarchychangedevent((XIDeviceHierarchyEvent*)event);
+                    break;
                 default:
                     print_deviceevent(event);
                     break;
                 default:
                     print_deviceevent(event);
                     break;