[gnome-control-center] mouse: Fix tap-to-click toggle sensitivity with libinput



commit b1f3f3e458ccbafd9254185afb2ecaf1ce220686
Author: Ondrej Holy <oholy redhat com>
Date:   Wed Apr 15 15:27:19 2015 +0200

    mouse: Fix tap-to-click toggle sensitivity with libinput
    
    Set tap_to_click_toggle sensitive if there is any device which supports
    tapping.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=745601

 panels/mouse/gnome-mouse-properties.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/panels/mouse/gnome-mouse-properties.c b/panels/mouse/gnome-mouse-properties.c
index c50a37b..7de3e94 100644
--- a/panels/mouse/gnome-mouse-properties.c
+++ b/panels/mouse/gnome-mouse-properties.c
@@ -107,7 +107,7 @@ synaptics_check_capabilities_x11 (CcMousePropertiesPrivate *d)
 {
        int numdevices, i;
        XDeviceInfo *devicelist;
-       Atom realtype, prop_capabilities, prop_scroll_methods;
+       Atom realtype, prop_capabilities, prop_scroll_methods, prop_tapping_enabled;
        int realformat;
        unsigned long nitems, bytes_after;
        unsigned char *data;
@@ -115,7 +115,8 @@ synaptics_check_capabilities_x11 (CcMousePropertiesPrivate *d)
 
        prop_capabilities = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics 
Capabilities", False);
        prop_scroll_methods = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "libinput 
Scroll Methods Available", False);
-       if (!prop_capabilities || !prop_scroll_methods)
+       prop_tapping_enabled = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "libinput 
Tapping Enabled", False);
+       if (!prop_capabilities || !prop_scroll_methods || !prop_tapping_enabled)
                return;
 
        tap_to_click = FALSE;
@@ -164,6 +165,16 @@ synaptics_check_capabilities_x11 (CcMousePropertiesPrivate *d)
                        XFree (data);
                }
 
+               if ((XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, 
prop_tapping_enabled,
+                                       0, 1, False, XA_INTEGER, &realtype, &realformat, &nitems,
+                                       &bytes_after, &data) == Success) && (realtype != None)) {
+                       /* Property data is boolean for tapping enabled. */
+
+                       tap_to_click = TRUE;
+
+                       XFree (data);
+               }
+
                gdk_error_trap_pop_ignored ();
 
                XCloseDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device);


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