summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
authoroutfoxxed <outfoxxed@outfoxxed.me>2023-06-14 04:08:56 -0700
committerGitHub <noreply@github.com>2023-06-14 13:08:56 +0200
commitf0e4f6622e3e9addc530119b804d2f71395455e7 (patch)
treefb26406e4fd956c0573ae4745edc23c8506793af /src/managers/KeybindManager.cpp
parent9a88c19f1ad2acad3cdfd2c81af6e40f2a0219b1 (diff)
Implement pass binds (#2503)
* Implement pass binds Pass binds run the associated dispatcher but do not prevent windows from receiving the bind. * Fix pass binds not working properly with release binds * Rename `pass` to `nonConsuming`
Diffstat (limited to 'src/managers/KeybindManager.cpp')
-rw-r--r--src/managers/KeybindManager.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index 19b2fba7..17cb6a6f 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -414,6 +414,9 @@ bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const std::string&
}
if (pressed && k.release) {
+ if (k.nonConsuming)
+ return false;
+
// suppress down event
m_kHeldBack = keysym;
return true;
@@ -452,7 +455,8 @@ bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const std::string&
wl_event_source_timer_update(m_pActiveKeybindEventSource, PACTIVEKEEB->repeatDelay);
}
- found = true;
+ if (!k.nonConsuming)
+ found = true;
}
return found;