summaryrefslogtreecommitdiff
path: root/src/managers
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-04-25 14:32:35 +0100
committerVaxry <vaxry@vaxry.net>2024-04-25 14:32:35 +0100
commit01df3b73d815beaa892849ae7bd4eddc94642dc7 (patch)
tree468929431da9777616ccc7b483260df4060cd301 /src/managers
parentecf282d331a8aa19c0fe10c739cd31d3b3ab64a2 (diff)
shortcuts-inhibitor: move to new impl
Diffstat (limited to 'src/managers')
-rw-r--r--src/managers/KeybindManager.cpp11
-rw-r--r--src/managers/KeybindManager.hpp1
-rw-r--r--src/managers/ProtocolManager.cpp3
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.