diff options
Diffstat (limited to 'src/managers/KeybindManager.cpp')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 16 |
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); |
