From f0e4f6622e3e9addc530119b804d2f71395455e7 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Wed, 14 Jun 2023 04:08:56 -0700 Subject: 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` --- src/managers/KeybindManager.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/managers/KeybindManager.cpp') 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; -- cgit v1.2.3