From 300d77edd9833db42c999a91271ae23a5be69ef2 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sat, 9 Mar 2024 16:08:07 +0000 Subject: keybinds: track submap at press for keypresses fixes #5037 --- src/managers/KeybindManager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/managers/KeybindManager.cpp') diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index d1b72e53..d8a4ca46 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -319,6 +319,7 @@ bool CKeybindManager::onKeyEvent(wlr_keyboard_key_event* e, SKeyboard* pKeyboard .keycode = KEYCODE, .modmaskAtPressTime = MODS, .sent = true, + .submapAtPress = m_szCurrentSelectedSubmap, }; bool suppressEvent = false; @@ -349,7 +350,8 @@ bool CKeybindManager::onKeyEvent(wlr_keyboard_key_event* e, SKeyboard* pKeyboard bool foundInPressedKeys = false; for (auto it = m_dPressedKeys.begin(); it != m_dPressedKeys.end();) { if (it->keycode == KEYCODE) { - suppressEvent = handleKeybinds(MODS, *it, false); + if (it->submapAtPress == m_szCurrentSelectedSubmap) + handleKeybinds(MODS, *it, false); foundInPressedKeys = true; suppressEvent = !it->sent; it = m_dPressedKeys.erase(it); -- cgit v1.2.3