diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2025-06-22 21:42:43 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2025-07-22 11:56:19 +0200 |
commit | b5cdd12b186f27cee8cfdfb9ff84c15ca8913582 (patch) | |
tree | 2370e7a16ddab2b61aaf848746472faae6b27fe2 | |
parent | 4de4c6757ad71cad0ee77ffdfde7fb19fb4541a8 (diff) | |
download | ayatana-indicator-keyboard-b5cdd12b186f27cee8cfdfb9ff84c15ca8913582.tar.gz ayatana-indicator-keyboard-b5cdd12b186f27cee8cfdfb9ff84c15ca8913582.tar.bz2 ayatana-indicator-keyboard-b5cdd12b186f27cee8cfdfb9ff84c15ca8913582.zip |
src/keyboard*: Remember nLayout and nLayoutOSK separately.
-rw-r--r-- | src/keyboard-lomiri.c | 26 | ||||
-rw-r--r-- | src/keyboard-x11.c | 3 | ||||
-rw-r--r-- | src/keyboard.h | 2 |
3 files changed, 23 insertions, 8 deletions
diff --git a/src/keyboard-lomiri.c b/src/keyboard-lomiri.c index d222a06a..ae2f7961 100644 --- a/src/keyboard-lomiri.c +++ b/src/keyboard-lomiri.c @@ -61,6 +61,7 @@ struct _KeyboardPrivate { GHashTable *lLayouts; guint nLayout; + guint nLayoutOSK; GSList *lLayoutRec; GSList *lLayoutRecOSK; GSList *lUsers; @@ -220,26 +221,37 @@ guint keyboard_GetNumLayouts(Keyboard *pKeyboard, gboolean bOSK) return nLayouts; } -guint keyboard_GetLayoutIndex (Keyboard *pKeyboard) +guint keyboard_GetLayoutIndex (Keyboard *pKeyboard, gboolean bOSK) { - return pKeyboard->pPrivate->nLayout; + if (bOSK) + { + return pKeyboard->pPrivate->nLayoutOSK; + } + else + { + return pKeyboard->pPrivate->nLayout; + } } void keyboard_GetLayout(Keyboard *pKeyboard, gboolean bOSK, gint nLayout, gchar **pLanguage, gchar **pDescription, gchar **pId) { - if (nLayout == -1) - { - nLayout = pKeyboard->pPrivate->nLayout; - } GSList *lLayoutRec = NULL; if (bOSK) { + if (nLayout == -1) + { + nLayout = pKeyboard->pPrivate->nLayoutOSK; + } lLayoutRec = pKeyboard->pPrivate->lLayoutRecOSK; } else { + if (nLayout == -1) + { + nLayout = pKeyboard->pPrivate->nLayout; + } lLayoutRec = pKeyboard->pPrivate->lLayoutRec; } @@ -695,6 +707,8 @@ static void keyboard_init(Keyboard *self) rxkb_context_unref(pContext); + self->pPrivate->nLayoutOSK = 0; + // Lomiri-specific layouts const gchar *LAYOUTS[][3] = { diff --git a/src/keyboard-x11.c b/src/keyboard-x11.c index 89e78517..75dabd6d 100644 --- a/src/keyboard-x11.c +++ b/src/keyboard-x11.c @@ -42,6 +42,7 @@ struct _KeyboardPrivate GHashTable *lLayouts; Display *pDisplay; guint nLayout; + guint nLayoutOSK; gint nXkbEventType; XklConfigRec *pConfigRec; GSList *lLayoutRec; @@ -385,7 +386,7 @@ guint keyboard_GetNumLayouts(Keyboard *pKeyboard, gboolean bOSK) return nLayouts; } -guint keyboard_GetLayoutIndex (Keyboard *pKeyboard) +guint keyboard_GetLayoutIndex (Keyboard *pKeyboard, gboolean bOSK) { return pKeyboard->pPrivate->nLayout; } diff --git a/src/keyboard.h b/src/keyboard.h index fd30cf6d..206c4bf3 100644 --- a/src/keyboard.h +++ b/src/keyboard.h @@ -47,7 +47,7 @@ GType keyboard_get_type(void); Keyboard* keyboard_new(); void keyboard_AddSource(Keyboard *pKeyboard); guint keyboard_GetNumLayouts(Keyboard *pKeyboard, gboolean bOSK); -guint keyboard_GetLayoutIndex (Keyboard *pKeyboard); +guint keyboard_GetLayoutIndex (Keyboard *pKeyboard, gboolean bOSK); void keyboard_GetLayout(Keyboard *pKeyboard, gboolean bOSK, gint nLayout, gchar **pLanguage, gchar **pDescription, gchar **pId); void keyboard_SetLayout(Keyboard *pKeyboard, gint nLayout, gboolean bOSK); gboolean keyboard_hasHardwareKeyboard(Keyboard *pKeyboard); |