[gtk+/xi2] Fallback to XI1 if XI2 is not available in the server.



commit db45548925d77015a818eccd11002593a7fbcd42
Author: Carlos Garnacho <carlos lanedo com>
Date:   Sat Oct 31 21:47:21 2009 +0100

    Fallback to XI1 if XI2 is not available in the server.
    
    There could be cases where XInput2.h is found, but the XI2 extension is not
    available on the running server, fallback to XI1 in that case.

 gdk/x11/Makefile.am            |    5 +--
 gdk/x11/gdkdevicemanager-x11.c |   43 ++++++++++++++++++---------------------
 2 files changed, 22 insertions(+), 26 deletions(-)
---
diff --git a/gdk/x11/Makefile.am b/gdk/x11/Makefile.am
index 0bfc0a5..9acc7db 100644
--- a/gdk/x11/Makefile.am
+++ b/gdk/x11/Makefile.am
@@ -64,11 +64,10 @@ libgdk_x11_la_SOURCES =    	\
 	xsettings-common.h	\
 	xsettings-common.c
 
-if XINPUT_2
-libgdk_x11_la_SOURCES += gdkdevicemanager-xi2.c gdkdevice-xi2.c
-else
 if XINPUT_XFREE
 libgdk_x11_la_SOURCES += gdkdevicemanager-xi.c gdkdevice-xi.c
+if XINPUT_2
+libgdk_x11_la_SOURCES += gdkdevicemanager-xi2.c gdkdevice-xi2.c
 endif
 endif
 
diff --git a/gdk/x11/gdkdevicemanager-x11.c b/gdk/x11/gdkdevicemanager-x11.c
index 02f4ca2..5d04842 100644
--- a/gdk/x11/gdkdevicemanager-x11.c
+++ b/gdk/x11/gdkdevicemanager-x11.c
@@ -21,31 +21,30 @@
 #include "gdkx.h"
 #include "gdkdevicemanager-core.h"
 
+#ifdef XINPUT_XFREE
+#include "gdkdevicemanager-xi.h"
 #ifdef XINPUT_2
-#  include "gdkdevicemanager-xi2.h"
-#else
-#  ifdef XINPUT_XFREE
-#    include "gdkdevicemanager-xi.h"
-#  endif
+#include "gdkdevicemanager-xi2.h"
+#endif
 #endif
 
 GdkDeviceManager *
 _gdk_device_manager_new (GdkDisplay *display)
 {
-  GdkDeviceManager *device_manager;
-  int opcode, firstevent, firsterror;
-  int major, minor;
-  Display *xdisplay;
-
   if (G_UNLIKELY (!g_getenv ("GDK_CORE_DEVICE_EVENTS")))
     {
 #if defined (XINPUT_2) || defined (XINPUT_XFREE)
+      int opcode, firstevent, firsterror;
+      Display *xdisplay;
+
       xdisplay = GDK_DISPLAY_XDISPLAY (display);
 
       if (XQueryExtension (xdisplay, "XInputExtension",
                            &opcode, &firstevent, &firsterror))
         {
-#if defined (XINPUT_2)
+#ifdef XINPUT_2
+          int major, minor;
+
           major = 2;
           minor = 0;
 
@@ -53,21 +52,19 @@ _gdk_device_manager_new (GdkDisplay *display)
             {
               GdkDeviceManagerXI2 *device_manager_xi2;
 
-              device_manager = g_object_new (GDK_TYPE_DEVICE_MANAGER_XI2,
-                                             "display", display,
-                                             NULL);
-
-              device_manager_xi2 = GDK_DEVICE_MANAGER_XI2 (device_manager);
+              device_manager_xi2 = g_object_new (GDK_TYPE_DEVICE_MANAGER_XI2,
+                                                 "display", display,
+                                                 NULL);
               device_manager_xi2->opcode = opcode;
 
-              return device_manager;
+              return GDK_DEVICE_MANAGER (device_manager_xi2);
             }
-#else
-          return g_object_new (GDK_TYPE_DEVICE_MANAGER_XI,
-                               "display", display,
-                               "event-base", firstevent,
-                               NULL);
-#endif
+          else
+#endif /* XINPUT_2 */
+            return g_object_new (GDK_TYPE_DEVICE_MANAGER_XI,
+                                 "display", display,
+                                 "event-base", firstevent,
+                                 NULL);
         }
 #endif /* XINPUT_2 || XINPUT_XFREE */
     }



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