Merge branch 'fix245' into 'main'

renderers: Do not assume all keyboards have LEDs

Closes #245

See merge request plymouth/plymouth!304
This commit is contained in:
Ray Strode 2024-01-31 16:14:08 +00:00
commit 02bd04d431
2 changed files with 40 additions and 4 deletions

View file

@ -1972,6 +1972,17 @@ get_panel_properties (ply_renderer_backend_t *backend,
return true;
}
static ply_input_device_t *
get_any_input_device (ply_renderer_backend_t *backend)
{
ply_list_node_t *node = ply_list_get_first_node (backend->input_source.input_devices);
if (node != NULL)
return ply_list_node_get_data (node);
return NULL;
}
static ply_input_device_t *
get_any_input_device_with_leds (ply_renderer_backend_t *backend)
{
@ -1994,6 +2005,9 @@ get_capslock_state (ply_renderer_backend_t *backend)
{
if (using_input_device (&backend->input_source)) {
ply_input_device_t *dev = get_any_input_device_with_leds (backend);
if (!dev)
return false;
return ply_input_device_get_capslock_state (dev);
}
if (!backend->terminal)
@ -2006,8 +2020,12 @@ static const char *
get_keymap (ply_renderer_backend_t *backend)
{
if (using_input_device (&backend->input_source)) {
ply_input_device_t *dev = get_any_input_device_with_leds (backend);
const char *keymap = ply_input_device_get_keymap (dev);
const char *keymap;
ply_input_device_t *dev = get_any_input_device (backend);
if (!dev)
return NULL;
keymap = ply_input_device_get_keymap (dev);
if (keymap != NULL) {
return keymap;
}

View file

@ -821,6 +821,17 @@ close_input_source (ply_renderer_backend_t *backend,
backend->input_source_is_open = false;
}
static ply_input_device_t *
get_any_input_device (ply_renderer_backend_t *backend)
{
ply_list_node_t *node = ply_list_get_first_node (backend->input_source.input_devices);
if (node != NULL)
return ply_list_node_get_data (node);
return NULL;
}
static ply_input_device_t *
get_any_input_device_with_leds (ply_renderer_backend_t *backend)
{
@ -843,6 +854,9 @@ get_capslock_state (ply_renderer_backend_t *backend)
{
if (using_input_device (&backend->input_source)) {
ply_input_device_t *dev = get_any_input_device_with_leds (backend);
if (!dev)
return false;
return ply_input_device_get_capslock_state (dev);
}
if (!backend->terminal)
@ -855,8 +869,12 @@ static const char *
get_keymap (ply_renderer_backend_t *backend)
{
if (using_input_device (&backend->input_source)) {
ply_input_device_t *dev = get_any_input_device_with_leds (backend);
const char *keymap = ply_input_device_get_keymap (dev);
const char *keymap;
ply_input_device_t *dev = get_any_input_device (backend);
if (!dev)
return NULL;
keymap = ply_input_device_get_keymap (dev);
if (keymap != NULL) {
return keymap;
}