summaryrefslogtreecommitdiff
path: root/src/managers
diff options
context:
space:
mode:
authorLuke Barkess <57995669+Brumus14@users.noreply.github.com>2025-11-11 22:59:21 +0000
committerGitHub <noreply@github.com>2025-11-11 22:59:21 +0000
commit308226a4fc2c9b63fa19894d5f85e79e05d75e03 (patch)
tree50a5c0d7577113726189824fda971b71c479867c /src/managers
parentee2168c665c9c01991cd2a0e73633e4e7d833259 (diff)
config/keybinds: add a submap universal keybind flag (#12100)
Diffstat (limited to 'src/managers')
-rw-r--r--src/managers/KeybindManager.cpp2
-rw-r--r--src/managers/KeybindManager.hpp47
2 files changed, 25 insertions, 24 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index 68750ad7..8194f739 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -680,7 +680,7 @@ SDispatchResult CKeybindManager::handleKeybinds(const uint32_t modmask, const SP
if (!k->locked && g_pSessionLockManager->isSessionLocked())
continue;
- if (!IGNORECONDITIONS && ((modmask != k->modmask && !k->ignoreMods) || k->submap != m_currentSelectedSubmap || k->shadowed))
+ if (!IGNORECONDITIONS && ((modmask != k->modmask && !k->ignoreMods) || (k->submap != m_currentSelectedSubmap && !k->submapUniversal) || k->shadowed))
continue;
if (k->multiKey) {
diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp
index 592588b5..e3433a10 100644
--- a/src/managers/KeybindManager.hpp
+++ b/src/managers/KeybindManager.hpp
@@ -26,29 +26,30 @@ struct SSubmap {
};
struct SKeybind {
- std::string key = "";
- std::set<xkb_keysym_t> sMkKeys = {};
- uint32_t keycode = 0;
- bool catchAll = false;
- uint32_t modmask = 0;
- std::set<xkb_keysym_t> sMkMods = {};
- std::string handler = "";
- std::string arg = "";
- bool locked = false;
- SSubmap submap = {};
- std::string description = "";
- bool release = false;
- bool repeat = false;
- bool longPress = false;
- bool mouse = false;
- bool nonConsuming = false;
- bool transparent = false;
- bool ignoreMods = false;
- bool multiKey = false;
- bool hasDescription = false;
- bool dontInhibit = false;
- bool click = false;
- bool drag = false;
+ std::string key = "";
+ std::set<xkb_keysym_t> sMkKeys = {};
+ uint32_t keycode = 0;
+ bool catchAll = false;
+ uint32_t modmask = 0;
+ std::set<xkb_keysym_t> sMkMods = {};
+ std::string handler = "";
+ std::string arg = "";
+ bool locked = false;
+ SSubmap submap = {};
+ std::string description = "";
+ bool release = false;
+ bool repeat = false;
+ bool longPress = false;
+ bool mouse = false;
+ bool nonConsuming = false;
+ bool transparent = false;
+ bool ignoreMods = false;
+ bool multiKey = false;
+ bool hasDescription = false;
+ bool dontInhibit = false;
+ bool click = false;
+ bool drag = false;
+ bool submapUniversal = false;
// DO NOT INITIALIZE
bool shadowed = false;