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`
This commit is contained in:
outfoxxed
2023-06-14 04:08:56 -07:00
committed by GitHub
parent 9a88c19f1a
commit f0e4f6622e
4 changed files with 33 additions and 21 deletions

View File

@@ -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;