[mutter/wip/carlosg/left-handed-tablet-touchpads] backends: Map left-handed in tablet "touchpads" together with the tablet
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/left-handed-tablet-touchpads] backends: Map left-handed in tablet "touchpads" together with the tablet
- Date: Fri, 7 Jun 2019 10:36:55 +0000 (UTC)
commit 41b0d101d7e3149a3a615c42de76b835abcb1759
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri Jun 7 12:31:31 2019 +0200
backends: Map left-handed in tablet "touchpads" together with the tablet
Avoid those devices when applying the configuration to touchpads, and ensure
the devices grouped with the tablet are all synchronized wrt the left handed
setting.
Closes: https://gitlab.gnome.org/GNOME/mutter/issues/562
src/backends/meta-input-settings.c | 45 +++++++++++++++++++++++++++++++++-----
1 file changed, 39 insertions(+), 6 deletions(-)
---
diff --git a/src/backends/meta-input-settings.c b/src/backends/meta-input-settings.c
index 847ba1bea..20b43cde5 100644
--- a/src/backends/meta-input-settings.c
+++ b/src/backends/meta-input-settings.c
@@ -302,9 +302,30 @@ update_touchpad_left_handed (MetaInputSettings *input_settings,
}
else
{
- settings_set_bool_setting (input_settings, CLUTTER_TOUCHPAD_DEVICE,
- input_settings_class->set_left_handed,
- enabled);
+ GSList *devices, *l;
+
+ devices = meta_input_settings_get_devices (input_settings,
+ CLUTTER_TOUCHPAD_DEVICE);
+
+ for (l = devices; l; l = l->next)
+ {
+#ifdef HAVE_LIBWACOM
+ WacomDevice *wacom_device;
+
+ wacom_device = meta_input_settings_get_tablet_wacom_device (input_settings,
+ device);
+ /* "Touchpads" with a wacom description will be rotated along their tablets */
+ if (wacom_device &&
+ (libwacom_get_integration_flags (wacom_device) != WACOM_DEVICE_INTEGRATED_NONE))
+ continue;
+#endif
+
+ settings_device_set_bool_setting (input_settings, d->data,
+ input_settings_class->set_left_handed,
+ enabled);
+ }
+
+ g_slist_free (devices);
}
}
@@ -1068,8 +1089,12 @@ update_tablet_left_handed (MetaInputSettings *input_settings,
ClutterInputDevice *device)
{
MetaInputSettingsClass *input_settings_class;
+ MetaInputSettingsPrivate *priv;
+ const GSList *devices, *l;
gboolean enabled;
+ priv = meta_input_settings_get_instance_private (input_settings);
+
if (clutter_input_device_get_device_type (device) != CLUTTER_TABLET_DEVICE &&
clutter_input_device_get_device_type (device) != CLUTTER_PEN_DEVICE &&
clutter_input_device_get_device_type (device) != CLUTTER_ERASER_DEVICE &&
@@ -1091,10 +1116,18 @@ update_tablet_left_handed (MetaInputSettings *input_settings,
input_settings_class = META_INPUT_SETTINGS_GET_CLASS (input_settings);
enabled = g_settings_get_boolean (settings, "left-handed");
+ devices = clutter_device_manager_peek_devices (priv->device_manager);
- settings_device_set_bool_setting (input_settings, device,
- input_settings_class->set_left_handed,
- enabled);
+ for (l = devices; l; l = l->next)
+ {
+ if (l->data != device &&
+ !clutter_input_device_is_grouped (device, l->data))
+ continue;
+
+ settings_device_set_bool_setting (input_settings, l->data,
+ input_settings_class->set_left_handed,
+ enabled);
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]