From b4bb859a6ad1566a3725b1c1c9c89d55e4c22a04 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 13 Feb 2018 11:44:40 +0100 Subject: [PATCH] clutter: Extend touchpad device property check for Synaptics So we reliably get CLUTTER_TOUCHPAD_DEVICE for those. The other heuristics to get the device type may fall short. --- .../clutter/x11/clutter-device-manager-xi2.c | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/clutter/clutter/x11/clutter-device-manager-xi2.c b/clutter/clutter/x11/clutter-device-manager-xi2.c index 62f558380..6794a2e0c 100644 --- a/clutter/clutter/x11/clutter-device-manager-xi2.c +++ b/clutter/clutter/x11/clutter-device-manager-xi2.c @@ -267,8 +267,9 @@ is_touch_device (XIAnyClassInfo **classes, } static gboolean -is_touchpad_device (ClutterBackendX11 *backend_x11, - XIDeviceInfo *info) +query_exists_device_property (ClutterBackendX11 *backend_x11, + XIDeviceInfo *info, + const gchar *property) { gulong nitems, bytes_after; guint32 *data = NULL; @@ -276,7 +277,7 @@ is_touchpad_device (ClutterBackendX11 *backend_x11, Atom type; Atom prop; - prop = XInternAtom (backend_x11->xdpy, "libinput Tapping Enabled", True); + prop = XInternAtom (backend_x11->xdpy, property, True); if (prop == None) return FALSE; @@ -297,6 +298,21 @@ is_touchpad_device (ClutterBackendX11 *backend_x11, return TRUE; } +static gboolean +is_touchpad_device (ClutterBackendX11 *backend_x11, + XIDeviceInfo *info) +{ + if (query_exists_device_property (backend_x11, info, + "libinput Tapping Enabled")) + return TRUE; + + if (query_exists_device_property (backend_x11, info, + "Synaptics Off")) + return TRUE; + + return FALSE; +} + static gboolean get_device_ids (ClutterBackendX11 *backend_x11, XIDeviceInfo *info,