]> diplodocus.org Git - xorg-xinput/commitdiff
Merge branch 'smooth-scrolling'
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 22 Sep 2011 22:36:47 +0000 (08:36 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 22 Sep 2011 22:36:47 +0000 (08:36 +1000)
Conflicts:
src/test_xi2.c

configure.ac
src/list.c
src/test_xi2.c

index 37f998fb76fe570b929154d25e99fb4a0bb4fb4d..5a648375bb54f9f8ceb90e52f15b98fe3316ba9c 100644 (file)
@@ -45,9 +45,12 @@ PKG_CHECK_MODULES(XI2, [xi >= 1.2.99.2] [inputproto >= 1.9.99.15],
                   HAVE_XI2="yes"; AC_DEFINE(HAVE_XI2, 1, [XI2 available]),
                   HAVE_XI2="no");
 AM_CONDITIONAL(HAVE_XI2, [ test "$HAVE_XI2" = "yes" ])
-
 AC_SUBST(HAVE_XI2)
 
+# XI2.1 support
+PKG_CHECK_MODULES(XI21, [xi >= 1.4.99.1] [inputproto >= 2.0.99.1],
+                  AC_DEFINE(HAVE_XI21, 1, [XI2.1 available]));
+
 AC_OUTPUT([Makefile
            src/Makefile
            man/Makefile])
index 236011e0afb56cdbe1979e8323200e55de55e2d2..64848e3d283a4c5783b79f0d7d8729982a1921c0 100644 (file)
@@ -201,6 +201,30 @@ print_classes_xi2(Display* display, XIAnyClassInfo **classes,
                     XFree(name);
                 }
                 break;
+#if HAVE_XI21
+            case XIScrollClass:
+                {
+                    XIScrollClassInfo *s = (XIScrollClassInfo*)classes[i];
+
+                    printf("XIScrollClass\n");
+                    printf("\t\tScroll info for Valuator %d\n", s->number);
+                    printf("\t\t  type: %d (%s)\n", s->scroll_type,
+                           (s->scroll_type == XIScrollTypeHorizontal) ? "horizontal" :
+                              (s->scroll_type == XIScrollTypeVertical) ? "vertical" : "unknown");
+                    printf("\t\t  increment: %f\n", s->increment);
+                    printf("\t\t  flags: 0x%x", s->flags);
+                    if (s->flags) {
+                        printf(" (");
+                        if (s->flags & XIScrollFlagNoEmulation)
+                            printf(" no-emulation ");
+                        if (s->flags & XIScrollFlagPreferred)
+                            printf(" preferred ");
+                        printf(")");
+                    }
+                    printf("\n");
+                }
+                break;
+#endif
         }
     }
 
index a2cd5d685904b1400cad6c38627f7734906e8b88..4a6c3b665edb2d3314cbb3539c131978afad046d 100644 (file)
@@ -53,7 +53,7 @@ static void print_deviceevent(XIDeviceEvent* event)
         case XI_KeyRelease:
             printf("    flags: %s\n", (event->flags & XIKeyRepeat) ?  "repeat" : "");
             break;
-#ifdef XIPointerEmulated
+#if HAVE_XI21
         case XI_ButtonPress:
         case XI_ButtonRelease:
         case XI_Motion:
@@ -150,6 +150,15 @@ static void print_rawevent(XIRawEvent *event)
     printf("    device: %d\n", event->deviceid);
     printf("    detail: %d\n", event->detail);
     printf("    valuators:\n");
+#if HAVE_XI21
+    switch(event->evtype) {
+        case XI_RawButtonPress:
+        case XI_RawButtonRelease:
+        case XI_RawMotion:
+            printf("    flags: %s\n", (event->flags & XIPointerEmulated) ?  "emulated" : "");
+            break;
+    }
+#endif
 
     val = event->valuators.values;
     raw_val = event->raw_values;