diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-04-25 14:32:35 +0100 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-04-25 14:32:35 +0100 |
| commit | 01df3b73d815beaa892849ae7bd4eddc94642dc7 (patch) | |
| tree | 468929431da9777616ccc7b483260df4060cd301 /src/managers | |
| parent | ecf282d331a8aa19c0fe10c739cd31d3b3ab64a2 (diff) | |
shortcuts-inhibitor: move to new impl
Diffstat (limited to 'src/managers')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 11 | ||||
| -rw-r--r-- | src/managers/KeybindManager.hpp | 1 | ||||
| -rw-r--r-- | src/managers/ProtocolManager.cpp | 3 |
3 files changed, 7 insertions, 8 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index ad863274..402c567f 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -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) { diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index 450960f5..b0587b7f 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -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; diff --git a/src/managers/ProtocolManager.cpp b/src/managers/ProtocolManager.cpp index 8605e8bd..a10032a0 100644 --- a/src/managers/ProtocolManager.cpp +++ b/src/managers/ProtocolManager.cpp @@ -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. |
