From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Sun, 8 Oct 2023 17:26:16 +0000 (+0200) Subject: keyboard: prevent storing synthetic layout change key event X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=3e2baa3f05ac963fbefe96132d7033ad6ce593a2;p=proto%2Flabwc.git keyboard: prevent storing synthetic layout change key event Before this patch, we were storing the key in our pressed set and didn't remove it which in turn caused all further keybinds to fail. The behavior was dependent on the exact flow of press and release events and was most obvious when using XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle We now simply treat it as a modifier and thus do not store it in the pressed set. Fixes: #1129 --- diff --git a/src/keyboard.c b/src/keyboard.c index 2b705140..a589ee8f 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -133,7 +133,9 @@ static bool is_modifier_key(xkb_keysym_t sym) || sym == XKB_KEY_Super_R /* Right hand Alt key for Mod5 */ || sym == XKB_KEY_Mode_switch - || sym == XKB_KEY_ISO_Level3_Shift; + || sym == XKB_KEY_ISO_Level3_Shift + /* Prevents storing layout change notifier in pressed */ + || sym == XKB_KEY_ISO_Next_Group; } struct keysyms {