backends/native: Shuffle udev client initialization in MetaSeatNative

This may be used indirectly before creation as we dispatch libinput events
right after creation (to let input devices be known), so those device
additions would trigger the touch-mode checks.

Creating it in advance results in checks being correctly performed, although
redundantly.

Spotted by Bastien Nocera.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/1067
This commit is contained in:
Carlos Garnacho 2020-02-26 11:38:39 +01:00 committed by Georges Basile Stavracas Neto
parent 6e7316ef11
commit 88bb24f66e

View File

@ -2528,6 +2528,8 @@ meta_seat_native_constructed (GObject *object)
udev_unref (udev); udev_unref (udev);
seat->udev_client = g_udev_client_new ((const gchar *[]) { "input", NULL });
dispatch_libinput (seat); dispatch_libinput (seat);
source = meta_event_source_new (seat); source = meta_event_source_new (seat);
@ -2548,10 +2550,8 @@ meta_seat_native_constructed (GObject *object)
xkb_keymap_led_get_index (xkb_keymap, XKB_LED_NAME_SCROLL); xkb_keymap_led_get_index (xkb_keymap, XKB_LED_NAME_SCROLL);
} }
seat->udev_client = g_udev_client_new ((const gchar *[]) { "input", NULL });
seat->has_external_keyboard = has_external_keyboard (seat); seat->has_external_keyboard = has_external_keyboard (seat);
seat->has_touchscreen = has_touchscreen (seat); seat->has_touchscreen = has_touchscreen (seat);
update_touch_mode (seat); update_touch_mode (seat);
if (G_OBJECT_CLASS (meta_seat_native_parent_class)->constructed) if (G_OBJECT_CLASS (meta_seat_native_parent_class)->constructed)