shortcuts-inhibitor: move to new impl
This commit is contained in:
parent
ecf282d331
commit
01df3b73d8
12 changed files with 172 additions and 77 deletions
|
|
@ -4,6 +4,7 @@
|
|||
#include "helpers/VarList.hpp"
|
||||
#include "../config/ConfigValue.hpp"
|
||||
#include "TokenManager.hpp"
|
||||
#include "../protocols/ShortcutsInhibit.hpp"
|
||||
|
||||
#include <regex>
|
||||
#include <tuple>
|
||||
|
|
@ -539,13 +540,9 @@ bool CKeybindManager::handleKeybinds(const uint32_t modmask, const SPressedKeyWi
|
|||
|
||||
static auto PDISABLEINHIBIT = CConfigValue<Hyprlang::INT>("binds:disable_keybind_grabbing");
|
||||
|
||||
if (!*PDISABLEINHIBIT && !m_lShortcutInhibitors.empty()) {
|
||||
for (auto& i : m_lShortcutInhibitors) {
|
||||
if (i.pWlrInhibitor->surface == g_pCompositor->m_pLastFocus) {
|
||||
Debug::log(LOG, "Keybind handling is disabled due to an inhibitor for surface {:x}", (uintptr_t)i.pWlrInhibitor->surface);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!*PDISABLEINHIBIT && PROTO::shortcutsInhibit->isInhibited()) {
|
||||
Debug::log(LOG, "Keybind handling is disabled due to an inhibitor");
|
||||
return false;
|
||||
}
|
||||
|
||||
for (auto& k : m_lKeybinds) {
|
||||
|
|
|
|||
|
|
@ -81,7 +81,6 @@ class CKeybindManager {
|
|||
bool m_bGroupsLocked = false;
|
||||
|
||||
std::list<SKeybind> m_lKeybinds;
|
||||
std::list<SShortcutInhibitor> m_lShortcutInhibitors;
|
||||
|
||||
private:
|
||||
std::deque<SPressedKeyWithMods> m_dPressedKeys;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
#include "../protocols/ForeignToplevel.hpp"
|
||||
#include "../protocols/PointerGestures.hpp"
|
||||
#include "../protocols/ForeignToplevelWlr.hpp"
|
||||
#include "../protocols/ShortcutsInhibit.hpp"
|
||||
|
||||
#include "tearing-control-v1.hpp"
|
||||
#include "fractional-scale-v1.hpp"
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
#include "ext-foreign-toplevel-list-v1.hpp"
|
||||
#include "pointer-gestures-unstable-v1.hpp"
|
||||
#include "wlr-foreign-toplevel-management-unstable-v1.hpp"
|
||||
#include "keyboard-shortcuts-inhibit-unstable-v1.hpp"
|
||||
|
||||
CProtocolManager::CProtocolManager() {
|
||||
|
||||
|
|
@ -40,6 +42,7 @@ CProtocolManager::CProtocolManager() {
|
|||
PROTO::foreignToplevel = std::make_unique<CForeignToplevelProtocol>(&ext_foreign_toplevel_list_v1_interface, 1, "ForeignToplevel");
|
||||
PROTO::pointerGestures = std::make_unique<CPointerGesturesProtocol>(&zwp_pointer_gestures_v1_interface, 3, "PointerGestures");
|
||||
PROTO::foreignToplevelWlr = std::make_unique<CForeignToplevelWlrProtocol>(&zwlr_foreign_toplevel_manager_v1_interface, 3, "ForeignToplevelWlr");
|
||||
PROTO::shortcutsInhibit = std::make_unique<CKeyboardShortcutsInhibitProtocol>(&zwp_keyboard_shortcuts_inhibit_manager_v1_interface, 1, "ShortcutsInhibit");
|
||||
|
||||
// Old protocol implementations.
|
||||
// TODO: rewrite them to use hyprwayland-scanner.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue