diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2011-10-25 13:48:57 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2011-11-10 13:04:43 +1000 |
commit | 9c3baacbd819eae122a4c0b679efc3c36895cff9 (patch) | |
tree | 36dd7b02a36225f8e8cffcf86dc50eb60bfa4d53 | |
parent | 9aea497432322054ff61711abe1d5028a108bcaf (diff) |
test-xi2: add basic touch support
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | configure.ac | 3 | ||||
-rw-r--r-- | src/list.c | 11 | ||||
-rw-r--r-- | src/test_xi2.c | 16 | ||||
-rw-r--r-- | src/xinput.c | 2 |
4 files changed, 32 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 5a64837..ea2b5bb 100644 --- a/configure.ac +++ b/configure.ac @@ -50,6 +50,9 @@ 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])); +# XI2.2 support +PKG_CHECK_MODULES(XI22, [xi >= 1.5.99.1] [inputproto >= 2.1.99.1], + AC_DEFINE(HAVE_XI22, 1, [XI2.2 available])); AC_OUTPUT([Makefile src/Makefile @@ -225,6 +225,17 @@ print_classes_xi2(Display* display, XIAnyClassInfo **classes, } break; #endif +#if HAVE_XI22 + case XITouchClass: + { + XITouchClassInfo *t = (XITouchClassInfo*)classes[i]; + + printf("XITouchClass\n"); + printf("\t\tTouch mode: %s\n", + (t->mode == XIDirectTouch) ? "direct" : "dependent"); + printf("\t\tMax number of touches: %d\n", t->num_touches); + } +#endif } } diff --git a/src/test_xi2.c b/src/test_xi2.c index 06be4e7..9ecfa1d 100644 --- a/src/test_xi2.c +++ b/src/test_xi2.c @@ -301,6 +301,12 @@ static const char* type_to_name(int evtype) case XI_RawButtonPress: name = "RawButtonPress"; break; case XI_RawButtonRelease: name = "RawButtonRelease"; break; case XI_RawMotion: name = "RawMotion"; break; + case XI_TouchBegin: name = "TouchBegin"; break; + case XI_TouchUpdate: name = "TouchUpdate"; break; + case XI_TouchEnd: name = "TouchEnd"; break; + case XI_RawTouchBegin: name = "RawTouchBegin"; break; + case XI_RawTouchUpdate: name = "RawTouchUpdate"; break; + case XI_RawTouchEnd: name = "RawTouchEnd"; break; default: name = "unknown event type"; break; } @@ -341,6 +347,11 @@ test_xi2(Display *display, XISetMask(mask.mask, XI_Leave); XISetMask(mask.mask, XI_FocusIn); XISetMask(mask.mask, XI_FocusOut); +#ifdef HAVE_XI22 + XISetMask(mask.mask, XI_TouchBegin); + XISetMask(mask.mask, XI_TouchUpdate); + XISetMask(mask.mask, XI_TouchEnd); +#endif if (mask.deviceid == XIAllDevices) XISetMask(mask.mask, XI_HierarchyChanged); XISetMask(mask.mask, XI_PropertyEvent); @@ -374,6 +385,11 @@ test_xi2(Display *display, XISetMask(mask.mask, XI_RawButtonPress); XISetMask(mask.mask, XI_RawButtonRelease); XISetMask(mask.mask, XI_RawMotion); +#ifdef HAVE_XI22 + XISetMask(mask.mask, XI_RawTouchBegin); + XISetMask(mask.mask, XI_RawTouchUpdate); + XISetMask(mask.mask, XI_RawTouchEnd); +#endif XISelectEvents(display, DefaultRootWindow(display), &mask, 1); free(mask.mask); diff --git a/src/xinput.c b/src/xinput.c index 1ed0c8c..f12d69c 100644 --- a/src/xinput.c +++ b/src/xinput.c @@ -197,6 +197,8 @@ xinput_version(Display *display) #if HAVE_XI21 min = 1; +#elif HAVE_XI22 + min = 2; #endif XIQueryVersion(display, &maj, &min); |