summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2023-02-26 13:55:35 +0000
committervaxerski <43317083+vaxerski@users.noreply.github.com>2023-02-26 13:55:35 +0000
commit18ed73f091204e44304192bd90c21fe5463ab46d (patch)
tree6df7e6acd88e310b35f2e651e83d226890a694c2 /src/managers/KeybindManager.cpp
parent55b412e0f4337192f8555f20c06af944d7b185bf (diff)
Added moveoutofgroup dispatcher
Diffstat (limited to 'src/managers/KeybindManager.cpp')
-rw-r--r--src/managers/KeybindManager.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index ef84de86..339a3016 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -62,6 +62,7 @@ CKeybindManager::CKeybindManager() {
m_mDispatchers["focuscurrentorlast"] = focusCurrentOrLast;
m_mDispatchers["lockgroups"] = lockGroups;
m_mDispatchers["moveintogroup"] = moveIntoGroup;
+ m_mDispatchers["moveoutofgroup"] = moveOutOfGroup;
m_tScrollTimer.reset();
}
@@ -2080,3 +2081,20 @@ void CKeybindManager::moveIntoGroup(std::string args) {
PWINDOWINDIR->insertWindowToGroup(PWINDOW);
}
+
+void CKeybindManager::moveOutOfGroup(std::string args) {
+ const auto PWINDOW = g_pCompositor->m_pLastWindow;
+
+ if (!PWINDOW || !PWINDOW->m_sGroupData.pNextWindow)
+ return;
+
+ g_pLayoutManager->getCurrentLayout()->onWindowRemoved(PWINDOW);
+
+ const auto GROUPSLOCKEDPREV = g_pKeybindManager->m_bGroupsLocked;
+
+ g_pKeybindManager->m_bGroupsLocked = true;
+
+ g_pLayoutManager->getCurrentLayout()->onWindowCreated(PWINDOW);
+
+ g_pKeybindManager->m_bGroupsLocked = GROUPSLOCKEDPREV;
+}