[mutter] seat-native: Check for tablet-switch devices from meta_seat_native_constructed
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] seat-native: Check for tablet-switch devices from meta_seat_native_constructed
- Date: Mon, 19 Oct 2020 07:50:39 +0000 (UTC)
commit 88cabf8039b4561520128ddb108341c75904aca8
Author: Hans de Goede <hdegoede redhat com>
Date: Wed Oct 14 21:23:04 2020 +0200
seat-native: Check for tablet-switch devices from meta_seat_native_constructed
Detect if a tablet-mode-switch device is already present when mutter
starts by checking for this from meta_seat_native_constructed. This
mirrors how we also set has_touchscreen from meta_seat_native_constructed.
This fixes tablet-mode-switches only being recognized when they are added
at runtime.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1506
src/backends/native/meta-seat-native.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
---
diff --git a/src/backends/native/meta-seat-native.c b/src/backends/native/meta-seat-native.c
index 8f8f13a099..b96ae3a250 100644
--- a/src/backends/native/meta-seat-native.c
+++ b/src/backends/native/meta-seat-native.c
@@ -1367,6 +1367,25 @@ has_touchscreen (MetaSeatNative *seat)
return FALSE;
}
+static gboolean
+has_tablet_switch (MetaSeatNative *seat)
+{
+ GSList *l;
+
+ for (l = seat->devices; l; l = l->next)
+ {
+ MetaInputDeviceNative *device_native = META_INPUT_DEVICE_NATIVE (l->data);
+
+ if (libinput_device_has_capability (device_native->libinput_device,
+ LIBINPUT_DEVICE_CAP_SWITCH) &&
+ libinput_device_switch_has_switch (device_native->libinput_device,
+ LIBINPUT_SWITCH_TABLET_MODE))
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
static void
update_touch_mode (MetaSeatNative *seat)
{
@@ -2519,6 +2538,7 @@ meta_seat_native_constructed (GObject *object)
}
seat->has_touchscreen = has_touchscreen (seat);
+ seat->has_tablet_switch = has_tablet_switch (seat);
update_touch_mode (seat);
if (G_OBJECT_CLASS (meta_seat_native_parent_class)->constructed)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]