summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-03-09 16:08:07 +0000
committerVaxry <vaxry@vaxry.net>2024-03-09 16:08:07 +0000
commit300d77edd9833db42c999a91271ae23a5be69ef2 (patch)
tree4f474f96a899f994abd0222059d022c9a01b73bf /src/managers/KeybindManager.cpp
parentc9ea600baa186acd3825dde306a6b3f89de09131 (diff)
keybinds: track submap at press for keypresses
fixes #5037
Diffstat (limited to 'src/managers/KeybindManager.cpp')
-rw-r--r--src/managers/KeybindManager.cpp4
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);