From 7186ce77474fbc3fd6ed6aa679fcc12f2124de75 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Sun, 24 Jan 2021 19:07:05 +0100 Subject: Send a layout-changed signal after manual selection --- src/keyboard.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/keyboard.c b/src/keyboard.c index 1c0b22a0..ad820096 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -67,7 +67,7 @@ static gboolean onCheckEvent(Display *pDisplay, XEvent *pEvent, XPointer pData) return FALSE; } -static gboolean onCheck(GSource *pSource) +static gboolean onCheckSource(GSource *pSource) { Keyboard *pKeyboard = ((Source*)pSource)->pKeyboard; XEvent cEvent; @@ -168,7 +168,7 @@ void keyboard_AddSource(Keyboard *pKeyboard) pKeyboard->pPrivate->cPollFD.events = G_IO_IN | G_IO_HUP | G_IO_ERR; pKeyboard->pPrivate->cPollFD.revents = 0; pKeyboard->pPrivate->cSourceFuncs.prepare = NULL; - pKeyboard->pPrivate->cSourceFuncs.check = onCheck; + pKeyboard->pPrivate->cSourceFuncs.check = onCheckSource; pKeyboard->pPrivate->cSourceFuncs.dispatch = NULL; pKeyboard->pPrivate->cSourceFuncs.finalize = NULL; @@ -222,6 +222,8 @@ void keyboard_GetLayout(Keyboard *pKeyboard, gint nLayout, gchar **pLanguage, gc void keyboard_SetLayout(Keyboard *pKeyboard, gint nLayout) { xkl_engine_lock_group(pKeyboard->pPrivate->pEngine, nLayout); + pKeyboard->pPrivate->nLayout = nLayout; + g_signal_emit(pKeyboard, m_lSignals[LAYOUT_CHANGED], 0); } static void onDispose(GObject *pObject) -- cgit v1.2.3