[gnome-settings-daemon] common: Return opcode when detecting XInput2



commit 39867d9919e42070d1a50670243d1b9f81a849ae
Author: Bastien Nocera <hadess hadess net>
Date:   Mon Oct 31 16:10:54 2011 +0000

    common: Return opcode when detecting XInput2

 plugins/common/gsd-input-helper.c |   29 ++++++++++++++++++++---------
 plugins/common/gsd-input-helper.h |    2 +-
 2 files changed, 21 insertions(+), 10 deletions(-)
---
diff --git a/plugins/common/gsd-input-helper.c b/plugins/common/gsd-input-helper.c
index 7b605bf..70b2be4 100644
--- a/plugins/common/gsd-input-helper.c
+++ b/plugins/common/gsd-input-helper.c
@@ -86,24 +86,35 @@ device_set_property (XDevice        *xdevice,
         return TRUE;
 }
 
-gboolean
-supports_xinput_devices (void)
+static gboolean
+supports_xinput_devices_with_opcode (int *opcode)
 {
         gint op_code, event, error;
+        gboolean retval;
+
+        retval = XQueryExtension (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
+				  "XInputExtension",
+				  &op_code,
+				  &event,
+				  &error);
+	if (opcode)
+		*opcode = op_code;
 
-        return XQueryExtension (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-                                "XInputExtension",
-                                &op_code,
-                                &event,
-                                &error);
+	return retval;
 }
 
 gboolean
-supports_xinput2_devices (void)
+supports_xinput_devices (void)
+{
+	return supports_xinput_devices_with_opcode (NULL);
+}
+
+gboolean
+supports_xinput2_devices (int *opcode)
 {
         int major, minor;
 
-        if (supports_xinput_devices () == FALSE)
+        if (supports_xinput_devices_with_opcode (opcode) == FALSE)
                 return FALSE;
 
         gdk_error_trap_push ();
diff --git a/plugins/common/gsd-input-helper.h b/plugins/common/gsd-input-helper.h
index 48bc249..e96fee4 100644
--- a/plugins/common/gsd-input-helper.h
+++ b/plugins/common/gsd-input-helper.h
@@ -49,7 +49,7 @@ typedef struct {
 } PropertyHelper;
 
 gboolean  supports_xinput_devices  (void);
-gboolean  supports_xinput2_devices (void);
+gboolean  supports_xinput2_devices (int *opcode);
 
 gboolean set_device_enabled       (int device_id,
                                    gboolean enabled);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]