summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2011-11-23 23:57:12 +0100
committerCarlos Garnacho <carlosg@gnome.org>2012-02-18 17:48:51 +0100
commit29569e60496a84041b78ab0e3b1064e04bb9360a (patch)
tree47be2789e2f1c91caeee6c77f626b5e7ac157900
parentc201145d02f3984464d12c4afc5a57a39d874287 (diff)
downloadgtk+-29569e60496a84041b78ab0e3b1064e04bb9360a.tar.gz
gdk,xi2: Update to latest XInput2.2 spec
-rw-r--r--configure.ac4
-rw-r--r--gdk/x11/Makefile.am2
-rw-r--r--gdk/x11/gdkdevice-xi2.c4
-rw-r--r--gdk/x11/gdkdevicemanager-x11.c6
-rw-r--r--gdk/x11/gdkdevicemanager-xi2.c46
5 files changed, 25 insertions, 37 deletions
diff --git a/configure.ac b/configure.ac
index 0960ffbbd3..eba7a5a9a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -935,7 +935,7 @@ if test "x$enable_x11_backend" = xyes; then
have_base_x_pc=true
X_PACKAGES="$X_PACKAGES x11 xext"
x_libs="`$PKG_CONFIG --libs x11 xext`"
- X_CFLAGS="`$PKG_CONFIG --cflags x11 xext`"
+ X_CFLAGS="`$PKG_CONFIG --cflags x11 xext` -DXINPUT2_1_USE_UNSTABLE_PROTOCOL -DXINPUT2_2_USE_UNSTABLE_PROTOCOL"
# Strip out any .la files that pkg-config might give us (this happens
# with -uninstalled.pc files)
@@ -1128,7 +1128,7 @@ if test "x$enable_x11_backend" = xyes; then
gtk_save_LIBS="$LIBS"
LIBS="$LIBS -lXi"
- AC_CHECK_FUNC(XIAllowTouchEvents, AC_DEFINE(XINPUT_2_1, 1, [Define to 1 if XInput 2.1 is available]))
+ AC_CHECK_FUNC(XIAllowTouchEvents, AC_DEFINE(XINPUT_2_2, 1, [Define to 1 if XInput 2.2 is available]))
LIBS="$gtk_save_LIBS"
else
AC_DEFINE(XINPUT_NONE, 1,
diff --git a/gdk/x11/Makefile.am b/gdk/x11/Makefile.am
index 3b0d1bdcb3..d8abfd5b4a 100644
--- a/gdk/x11/Makefile.am
+++ b/gdk/x11/Makefile.am
@@ -7,6 +7,8 @@ libgdkx11includedir = $(includedir)/gtk-3.0/gdk/x11
AM_CPPFLAGS = \
-DG_LOG_DOMAIN=\"Gdk\" \
-DGDK_COMPILATION \
+ -DXINPUT2_2_USE_UNSTABLE_PROTOCOL \
+ -DXINPUT2_1_USE_UNSTABLE_PROTOCOL \
-I$(top_srcdir) \
-I$(top_srcdir)/gdk \
-I$(top_builddir)/gdk \
diff --git a/gdk/x11/gdkdevice-xi2.c b/gdk/x11/gdkdevice-xi2.c
index 4a1ddb3946..f0e65b3aac 100644
--- a/gdk/x11/gdkdevice-xi2.c
+++ b/gdk/x11/gdkdevice-xi2.c
@@ -690,14 +690,14 @@ _gdk_x11_device_xi2_translate_event_mask (GdkEventMask event_mask,
XISetMask (mask, XI_FocusOut);
}
-#ifdef XINPUT_2_1
+#ifdef XINPUT_2_2
if (event_mask & GDK_TOUCH_MASK)
{
XISetMask (mask, XI_TouchBegin);
XISetMask (mask, XI_TouchUpdate);
XISetMask (mask, XI_TouchEnd);
}
-#endif /* XINPUT_2_1 */
+#endif /* XINPUT_2_2 */
return mask;
}
diff --git a/gdk/x11/gdkdevicemanager-x11.c b/gdk/x11/gdkdevicemanager-x11.c
index d3815eb131..c119870a7a 100644
--- a/gdk/x11/gdkdevicemanager-x11.c
+++ b/gdk/x11/gdkdevicemanager-x11.c
@@ -54,11 +54,11 @@ _gdk_x11_device_manager_new (GdkDisplay *display)
int major, minor;
major = 2;
-#ifdef XINPUT_2_1
- minor = 1;
+#ifdef XINPUT_2_2
+ minor = 2;
#else
minor = 0;
-#endif /* XINPUT_2_1 */
+#endif /* XINPUT_2_2 */
if (!_gdk_disable_multidevice &&
XIQueryVersion (xdisplay, &major, &minor) != BadRequest)
diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c
index df7381f568..05a35c8fad 100644
--- a/gdk/x11/gdkdevicemanager-xi2.c
+++ b/gdk/x11/gdkdevicemanager-xi2.c
@@ -242,19 +242,6 @@ translate_device_classes (GdkDisplay *display,
valuator_info->resolution);
}
break;
-#ifdef XINPUT_2_1
- case XITouchValuatorClass:
- {
- XITouchValuatorClassInfo *valuator_info = (XITouchValuatorClassInfo *) class_info;
-
- translate_valuator_class (display, device,
- valuator_info->label,
- valuator_info->min,
- valuator_info->max,
- valuator_info->resolution);
- }
- break;
-#endif /* XINPUT_2_1 */
default:
/* Ignore */
break;
@@ -268,22 +255,21 @@ static gint
count_device_touches (XIAnyClassInfo **classes,
guint n_classes)
{
- gint n_touches = 0;
-#ifdef XINPUT_2_1
+#ifdef XINPUT_2_2
guint i;
for (i = 0; i < n_classes; i++)
{
- XITouchValuatorClassInfo *valuator_info = (XITouchValuatorClassInfo *) classes[i];
+ XITouchClassInfo *valuator_info = (XITouchClassInfo *) classes[i];
- if (valuator_info->type != XITouchValuatorClass)
+ if (valuator_info->type != XITouchClass)
continue;
- n_touches = MAX (n_touches, valuator_info->number);
+ return valuator_info->num_touches;
}
#endif
- return n_touches;
+ return 0;
}
static GdkDevice *
@@ -898,11 +884,11 @@ get_event_window (GdkEventTranslator *translator,
case XI_ButtonPress:
case XI_ButtonRelease:
case XI_Motion:
-#ifdef XINPUT_2_1
+#ifdef XINPUT_2_2
case XI_TouchUpdate:
case XI_TouchBegin:
case XI_TouchEnd:
-#endif /* XINPUT_2_1 */
+#endif /* XINPUT_2_2 */
{
XIDeviceEvent *xev = (XIDeviceEvent *) ev;
@@ -1123,10 +1109,10 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
break;
case XI_ButtonPress:
case XI_ButtonRelease:
-#ifdef XINPUT_2_1
+#ifdef XINPUT_2_2
case XI_TouchBegin:
case XI_TouchEnd:
-#endif /* XINPUT_2_1 */
+#endif /* XINPUT_2_2 */
{
XIDeviceEvent *xev = (XIDeviceEvent *) ev;
GdkDevice *source_device;
@@ -1164,13 +1150,13 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
}
else
{
-#ifdef XINPUT_2_1
+#ifdef XINPUT_2_2
if (ev->evtype == XI_TouchBegin)
event->button.type = GDK_TOUCH_PRESS;
else if (ev->evtype == XI_TouchEnd)
event->button.type = GDK_TOUCH_RELEASE;
else
-#endif /* XINPUT_2_1 */
+#endif /* XINPUT_2_2 */
event->button.type = (ev->evtype == XI_ButtonPress) ? GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE;
event->button.window = window;
@@ -1204,7 +1190,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
event->button.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group);
-#ifdef XINPUT_2_1
+#ifdef XINPUT_2_2
if (ev->evtype == XI_TouchBegin ||
ev->evtype == XI_TouchEnd)
{
@@ -1212,7 +1198,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
event->button.touch_id = xev->detail;
}
else
-#endif /* XINPUT_2_1 */
+#endif /* XINPUT_2_2 */
event->button.button = xev->detail;
}
@@ -1231,9 +1217,9 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
break;
}
case XI_Motion:
-#ifdef XINPUT_2_1
+#ifdef XINPUT_2_2
case XI_TouchUpdate:
-#endif /* XINPUT_2_1 */
+#endif /* XINPUT_2_2 */
{
XIDeviceEvent *xev = (XIDeviceEvent *) ev;
GdkDevice *source_device;
@@ -1243,7 +1229,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
event->motion.touch_id = 0;
event->motion.type = GDK_MOTION_NOTIFY;
}
-#ifdef XINPUT_2_1
+#ifdef XINPUT_2_2
else
{
event->motion.touch_id = xev->detail;