From 91d70ad7a2629b8d51b988f51035befa72f6d418 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 7 Nov 2023 13:22:52 +0100 Subject: [PATCH] core: Query pad devices on MetaPadActionMapper initialization This object might miss pad devices being made available too early during seat construction at Mutter initialization, and not initialize its own backing data properly for these. Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3143 Part-of: --- src/core/meta-pad-action-mapper.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/core/meta-pad-action-mapper.c b/src/core/meta-pad-action-mapper.c index 60d6453ec..82e25b2f1 100644 --- a/src/core/meta-pad-action-mapper.c +++ b/src/core/meta-pad-action-mapper.c @@ -157,10 +157,17 @@ device_removed (MetaPadActionMapper *mapper, static void meta_pad_action_mapper_init (MetaPadActionMapper *mapper) { + g_autoptr (GList) devices = NULL; + GList *l; + mapper->pads = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) pad_mapping_info_free); mapper->seat = clutter_backend_get_default_seat (clutter_get_default_backend ()); + devices = clutter_seat_list_devices (mapper->seat); + + for (l = devices; l; l = l->next) + device_added (mapper, l->data); } MetaPadActionMapper *