diff options
Diffstat (limited to 'src/managers')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 8 | ||||
| -rw-r--r-- | src/managers/KeybindManager.hpp | 1 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index 96d8ce60..17c606b9 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -72,13 +72,11 @@ bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const xkb_keysym_t if (handleInternalKeybinds(key)) return true; - if (g_pCompositor->m_sSeat.exclusiveClient){ - Debug::log(LOG, "Not handling keybinds due to there being an exclusive inhibited client."); - return false; - } + if (g_pCompositor->m_sSeat.exclusiveClient) + Debug::log(LOG, "Keybind handling only locked (inhibitor)"); for (auto& k : m_lKeybinds) { - if (modmask != k.modmask) + if (modmask != k.modmask || (g_pCompositor->m_sSeat.exclusiveClient && !k.locked)) continue; // oMg such performance hit!!11! diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index cb99aa41..a3dbb8dd 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -11,6 +11,7 @@ struct SKeybind { uint32_t modmask = 0; std::string handler = ""; std::string arg = ""; + bool locked = false; }; class CKeybindManager { |
