diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-03-09 16:08:07 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-03-09 16:08:07 +0000 |
| commit | 300d77edd9833db42c999a91271ae23a5be69ef2 (patch) | |
| tree | 4f474f96a899f994abd0222059d022c9a01b73bf /src/managers/KeybindManager.cpp | |
| parent | c9ea600baa186acd3825dde306a6b3f89de09131 (diff) | |
keybinds: track submap at press for keypresses
fixes #5037
Diffstat (limited to 'src/managers/KeybindManager.cpp')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
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); |
