summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <halfline@gmail.com>2022-12-01 15:35:52 +0000
committerRay Strode <halfline@gmail.com>2022-12-01 15:35:52 +0000
commite8b301a66df2e5b713d9379997249e66d1f3cda8 (patch)
treedb4fb6813af21f8a64fa089081771b8fda4b2861
parenta3f9824d9a3f894eae4f7b9dd720fc3c1eb11ecc (diff)
parentf6852a7a82a4226f2738da5fdbaf81cd80039443 (diff)
Merge branch 'dont-assume-qwerty-us-layout' into 'main'
device-manager: Fall back to reading from tty if no xkb layout specified Closes #199 See merge request plymouth/plymouth!218
-rw-r--r--src/libply-splash-core/ply-device-manager.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
index ca2af770..03fa0f30 100644
--- a/src/libply-splash-core/ply-device-manager.c
+++ b/src/libply-splash-core/ply-device-manager.c
@@ -413,6 +413,9 @@ create_devices_for_udev_device (ply_device_manager_t *manager,
} else if (strcmp (subsystem, SUBSYSTEM_INPUT) == 0) {
if (ply_string_has_prefix (device_sysname, "event")) {
ply_trace ("found input device %s", device_path);
+
+ assert (manager->xkb_keymap != NULL);
+
ply_input_device_t *input_device = ply_input_device_open (manager->xkb_context, manager->xkb_keymap, device_path);
if (input_device != NULL) {
ply_input_device_set_disconnect_handler (input_device, (ply_input_device_disconnect_handler_t) remove_input_device_from_renderers, manager);
@@ -673,7 +676,7 @@ watch_for_udev_events (ply_device_manager_t *manager)
udev_monitor_filter_add_match_subsystem_devtype (manager->udev_monitor, SUBSYSTEM_DRM, NULL);
udev_monitor_filter_add_match_subsystem_devtype (manager->udev_monitor, SUBSYSTEM_FRAME_BUFFER, NULL);
- if (!ply_kernel_command_line_has_argument ("plymouth.use-legacy-input"))
+ if (!ply_kernel_command_line_has_argument ("plymouth.use-legacy-input") && manager->xkb_keymap != NULL)
udev_monitor_filter_add_match_subsystem_devtype (manager->udev_monitor, SUBSYSTEM_INPUT, NULL);
udev_monitor_enable_receiving (manager->udev_monitor);
}
@@ -844,9 +847,6 @@ parse_vconsole_conf (ply_device_manager_t *manager)
if (manager->xkb_keymap == NULL) {
ply_trace ("Failed to set xkb keymap of LAYOUT: %s MODEL: %s VARIANT: %s OPTIONS: %s", xkb_layout, xkb_model, xkb_variant, xkb_options);
-
- manager->xkb_keymap = xkb_keymap_new_from_names (manager->xkb_context, NULL, XKB_MAP_COMPILE_NO_FLAGS);
- assert (manager->xkb_keymap != NULL);
}
free (xkb_layout);