From dcaa45fc0c199d09a4a54f8e5a6d3562305ba584 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 12 Feb 2020 20:26:56 +0100 Subject: [PATCH] backends/x11: Implement is_grouped for X11 If the devices have a wacom description, compare those. Otherwise, look up the devices' VID:PID, if they match they should also be grouped. https://gitlab.gnome.org/GNOME/mutter/merge_requests/971 --- src/backends/x11/meta-input-device-x11.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/backends/x11/meta-input-device-x11.c b/src/backends/x11/meta-input-device-x11.c index dc3b94f49..480acd83e 100644 --- a/src/backends/x11/meta-input-device-x11.c +++ b/src/backends/x11/meta-input-device-x11.c @@ -92,6 +92,30 @@ static gboolean meta_input_device_x11_is_grouped (ClutterInputDevice *device, ClutterInputDevice *other_device) { +#ifdef HAVE_LIBWACOM + MetaInputDeviceX11 *device_x11 = META_INPUT_DEVICE_X11 (device); + MetaInputDeviceX11 *other_device_x11 = META_INPUT_DEVICE_X11 (other_device); + + if (device_x11->wacom_device && + other_device_x11->wacom_device && + libwacom_compare (device_x11->wacom_device, + other_device_x11->wacom_device, + WCOMPARE_NORMAL) == 0) + return TRUE; +#endif + + if (clutter_input_device_get_vendor_id (device) && + clutter_input_device_get_product_id (device) && + clutter_input_device_get_vendor_id (other_device) && + clutter_input_device_get_product_id (other_device)) + { + if (strcmp (clutter_input_device_get_vendor_id (device), + clutter_input_device_get_vendor_id (other_device)) == 0 && + strcmp (clutter_input_device_get_product_id (device), + clutter_input_device_get_product_id (other_device)) == 0) + return TRUE; + } + return FALSE; }