From ed64f9e0b8cb9d9c33f79d0be873e40b20a965ce Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Sat, 24 Feb 2024 20:43:03 +0000 Subject: [PATCH] desklock - fix kbd layout set for desklock so it works e just didn't store the kbd layout - set it up if it is not on desklock based on layout name stored. @fix --- src/bin/e_desklock.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/bin/e_desklock.c b/src/bin/e_desklock.c index be68f8290..a80854559 100644 --- a/src/bin/e_desklock.c +++ b/src/bin/e_desklock.c @@ -278,6 +278,28 @@ _desklock_show_internal(Eina_Bool suspend) if (e_config->desklock_language) e_intl_language_set(e_config->desklock_language); + if ((e_config->xkb.lock_layout) && (e_config->xkb.desklock_layout)) + { + if ((!e_config->xkb.lock_layout->name) || + (!!strcmp(e_config->xkb.lock_layout->name, e_config->xkb.desklock_layout))) + { + e_config_xkb_layout_free(e_config->xkb.lock_layout); + e_config->xkb.lock_layout = NULL; + } + } + if ((e_config->xkb.desklock_layout) && (!e_config->xkb.lock_layout)) + { + E_Config_XKB_Layout *cl; + + EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, cl) + { + if ((cl->name) && (!strcmp(cl->name, e_config->xkb.desklock_layout))) + { + e_config->xkb.lock_layout = e_config_xkb_layout_dup(cl); + break; + } + } + } if (e_config->xkb.lock_layout) e_xkb_layout_set(e_config->xkb.lock_layout);