diff options
| author | Vaxry <vaxry@vaxry.net> | 2023-10-17 20:09:54 +0100 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2023-10-17 20:10:07 +0100 |
| commit | a0b675ec9e57af8bc631fc8cc54d062b58669a9f (patch) | |
| tree | 5225815cfb5a4872c8087874a594a3a09dd83490 /src/managers | |
| parent | 784f8a88fb59c9674648e275e78903ac15bbbf9f (diff) | |
binds: add ignoreMods flag
Diffstat (limited to 'src/managers')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 3 | ||||
| -rw-r--r-- | src/managers/KeybindManager.hpp | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index cd99c61f..7e0b7620 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -435,7 +435,8 @@ bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const std::string& const bool IGNORECONDITIONS = SPECIALDISPATCHER && !pressed && SPECIALTRIGGERED; // ignore mods. Pass, global dispatchers should be released immediately once the key is released. - if (!IGNORECONDITIONS && (modmask != k.modmask || (g_pCompositor->m_sSeat.exclusiveClient && !k.locked) || k.submap != m_szCurrentSelectedSubmap || k.shadowed)) + if (!IGNORECONDITIONS && + ((modmask != k.modmask && !k.ignoreMods) || (g_pCompositor->m_sSeat.exclusiveClient && !k.locked) || k.submap != m_szCurrentSelectedSubmap || k.shadowed)) continue; if (!key.empty()) { diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index 9c63249e..8a0b3b89 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -23,12 +23,14 @@ struct SKeybind { bool mouse = false; bool nonConsuming = false; bool transparent = false; + bool ignoreMods = false; // DO NOT INITIALIZE bool shadowed = false; }; -enum eFocusWindowMode { +enum eFocusWindowMode +{ MODE_CLASS_REGEX = 0, MODE_TITLE_REGEX, MODE_ADDRESS, |
