Index: dialogs/mouse-settings/main.c =================================================================== --- dialogs/mouse-settings/main.c (revision 29485) +++ dialogs/mouse-settings/main.c (working copy) @@ -1175,6 +1175,7 @@ GtkAdjustment *adjustment; GtkWidget *widget; XExtensionVersion *version = NULL; + Display *xdisplay; /* setup translation domain */ xfce_textdomain (GETTEXT_PACKAGE, LOCALEDIR, "UTF-8"); @@ -1221,16 +1222,33 @@ return EXIT_FAILURE; } - + + /* get the default display */ + xdisplay = gdk_x11_display_get_xdisplay (gdk_display_get_default ()); + /* check for Xi 1.4 */ - version = XGetExtensionVersion (GDK_DISPLAY (), INAME); - if (!version || !version->present || version->major_version < 1 || version->minor_version < 4) +#ifdef XInput_2 + version = XQueryInputVersion (xdisplay, 1, 4); + if (version == NULL || !version->present) +#else + version = XGetExtensionVersion (xdisplay, INAME); + if (version == NULL || !version->present + || (version->major_version == 1 && version->minor_version < 4)) +#endif { + /* cleanup */ + if (version != NULL) + XFree (version); + g_critical ("XI is not present or too old."); return EXIT_FAILURE; } + /* cleanup */ + if (version != NULL) + XFree (version); + /* open the xsettings and pointers channel */ xsettings_channel = xfconf_channel_new ("xsettings"); pointers_channel = xfconf_channel_new ("pointers"); Index: xfce4-settings-helper/pointers.c =================================================================== --- xfce4-settings-helper/pointers.c (revision 29485) +++ xfce4-settings-helper/pointers.c (working copy) @@ -133,12 +133,16 @@ /* get the default display */ xdisplay = gdk_x11_display_get_xdisplay (gdk_display_get_default ()); - - /* query the extension version */ + + /* check for Xi 1.4 */ +#ifdef XInput_2 + version = XQueryInputVersion (xdisplay, 1, 4); + if (version == NULL || !version->present) +#else version = XGetExtensionVersion (xdisplay, INAME); - - /* check for Xi 1.4 */ - if (!version || !version->present || version->major_version < 1 || version->minor_version < 4) + if (version == NULL || !version->present + || (version->major_version == 1 && version->minor_version < 4)) +#endif { /* print error */ g_critical ("XI is not present or too old."); @@ -162,7 +166,6 @@ gdk_flush (); gdk_error_trap_push (); - if (G_LIKELY (xdisplay)) { /* monitor device changes */ @@ -178,6 +181,10 @@ gdk_error_trap_pop (); #endif } + + /* cleanup */ + if (version != NULL) + XFree (version); }