From a66ef50469c7a347d27a9afec83db1be70be1c84 Mon Sep 17 00:00:00 2001 From: vaxerski Date: Tue, 21 Feb 2023 12:13:35 +0000 Subject: added a lockgroups dispatcher --- src/managers/KeybindManager.cpp | 9 +++++++++ src/managers/KeybindManager.hpp | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'src/managers') diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index b47f8d67..efeb2a07 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -60,6 +60,7 @@ CKeybindManager::CKeybindManager() { m_mDispatchers["bringactivetotop"] = bringActiveToTop; m_mDispatchers["focusurgentorlast"] = focusUrgentOrLast; m_mDispatchers["focuscurrentorlast"] = focusCurrentOrLast; + m_mDispatchers["lockgroups"] = lockGroups; m_tScrollTimer.reset(); } @@ -2032,3 +2033,11 @@ void CKeybindManager::fakeFullscreenActive(std::string args) { g_pCompositor->m_pLastWindow->m_bFakeFullscreenState || g_pCompositor->m_pLastWindow->m_bIsFullscreen); } } + +void CKeybindManager::lockGroups(std::string args) { + if (args == "lock" || args.empty() || args == "lockgroups") { + g_pKeybindManager->m_bGroupsLocked = true; + } else { + g_pKeybindManager->m_bGroupsLocked = false; + } +} diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index 6e31ccd9..3f2debbf 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -25,8 +25,7 @@ struct SKeybind { bool shadowed = false; }; -enum eFocusWindowMode -{ +enum eFocusWindowMode { MODE_CLASS_REGEX = 0, MODE_TITLE_REGEX, MODE_ADDRESS, @@ -55,6 +54,8 @@ class CKeybindManager { wl_event_source* m_pActiveKeybindEventSource = nullptr; + bool m_bGroupsLocked = false; + std::list m_lKeybinds; private: @@ -133,6 +134,7 @@ class CKeybindManager { static void pinActive(std::string); static void mouse(std::string); static void bringActiveToTop(std::string); + static void lockGroups(std::string); friend class CCompositor; friend class CInputManager; -- cgit v1.2.3