mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-10-20 00:41:46 +00:00
keybinds: fix release binds in submaps (#6025)
This commit is contained in:
@@ -386,8 +386,7 @@ bool CKeybindManager::onKeyEvent(std::any event, SP<IKeyboard> pKeyboard) {
|
|||||||
bool foundInPressedKeys = false;
|
bool foundInPressedKeys = false;
|
||||||
for (auto it = m_dPressedKeys.begin(); it != m_dPressedKeys.end();) {
|
for (auto it = m_dPressedKeys.begin(); it != m_dPressedKeys.end();) {
|
||||||
if (it->keycode == KEYCODE) {
|
if (it->keycode == KEYCODE) {
|
||||||
if (it->submapAtPress == m_szCurrentSelectedSubmap)
|
handleKeybinds(MODS, *it, false);
|
||||||
handleKeybinds(MODS, *it, false);
|
|
||||||
foundInPressedKeys = true;
|
foundInPressedKeys = true;
|
||||||
suppressEvent = !it->sent;
|
suppressEvent = !it->sent;
|
||||||
it = m_dPressedKeys.erase(it);
|
it = m_dPressedKeys.erase(it);
|
||||||
@@ -570,7 +569,7 @@ bool CKeybindManager::handleKeybinds(const uint32_t modmask, const SPressedKeyWi
|
|||||||
if (key.keycode != k.keycode)
|
if (key.keycode != k.keycode)
|
||||||
continue;
|
continue;
|
||||||
} else if (k.catchAll) {
|
} else if (k.catchAll) {
|
||||||
if (found)
|
if (found || key.submapAtPress != m_szCurrentSelectedSubmap)
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
// oMg such performance hit!!11!
|
// oMg such performance hit!!11!
|
||||||
|
Reference in New Issue
Block a user