summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/managers/KeybindManager.cpp')
-rw-r--r--src/managers/KeybindManager.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index e8c7a069..7e2f2f3f 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -1977,15 +1977,19 @@ void CKeybindManager::moveWindowOutOfGroup(CWindow* pWindow, const std::string&
default: direction = DIRECTION_DEFAULT;
}
- g_pLayoutManager->getCurrentLayout()->onWindowRemoved(pWindow);
-
- const auto GROUPSLOCKEDPREV = g_pKeybindManager->m_bGroupsLocked;
+ if (pWindow->m_sGroupData.pNextWindow == pWindow) {
+ pWindow->m_sGroupData.pNextWindow = nullptr;
+ pWindow->updateWindowDecos();
+ } else {
+ g_pLayoutManager->getCurrentLayout()->onWindowRemoved(pWindow);
- g_pKeybindManager->m_bGroupsLocked = true;
+ const auto GROUPSLOCKEDPREV = g_pKeybindManager->m_bGroupsLocked;
+ g_pKeybindManager->m_bGroupsLocked = true;
- g_pLayoutManager->getCurrentLayout()->onWindowCreated(pWindow, direction);
+ g_pLayoutManager->getCurrentLayout()->onWindowCreated(pWindow, direction);
- g_pKeybindManager->m_bGroupsLocked = GROUPSLOCKEDPREV;
+ g_pKeybindManager->m_bGroupsLocked = GROUPSLOCKEDPREV;
+ }
if (*BFOCUSREMOVEDWINDOW) {
g_pCompositor->focusWindow(pWindow);