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.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index 52a18d2b..097b881c 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -1174,6 +1174,8 @@ void CKeybindManager::toggleGroup(std::string args) {
if (!PWINDOW)
return;
+ g_pCompositor->setWindowFullscreen(PWINDOW, false, FULLSCREEN_FULL);
+
if (!PWINDOW->m_sGroupData.pNextWindow) {
PWINDOW->m_sGroupData.pNextWindow = PWINDOW;
PWINDOW->m_sGroupData.head = true;
@@ -1205,10 +1207,12 @@ void CKeybindManager::toggleGroup(std::string args) {
w->m_sGroupData.head = false;
}
+ g_pKeybindManager->m_bGroupsLocked = true;
for (auto& w : members) {
g_pLayoutManager->getCurrentLayout()->onWindowCreated(w);
w->updateWindowDecos();
}
+ g_pKeybindManager->m_bGroupsLocked = false;
}
}
@@ -2027,14 +2031,19 @@ void CKeybindManager::moveIntoGroup(std::string args) {
if (!PWINDOWINDIR || !PWINDOWINDIR->m_sGroupData.pNextWindow)
return;
- g_pLayoutManager->getCurrentLayout()->onWindowRemoved(PWINDOW);
+ if (!PWINDOW->m_sGroupData.pNextWindow)
+ PWINDOW->m_dWindowDecorations.emplace_back(std::make_unique<CHyprGroupBarDecoration>(PWINDOW));
- PWINDOWINDIR->insertWindowToGroup(PWINDOW);
+ g_pLayoutManager->getCurrentLayout()->onWindowRemoved(PWINDOW); // This removes groupped property!
- PWINDOW->m_dWindowDecorations.emplace_back(std::make_unique<CHyprGroupBarDecoration>(PWINDOW));
+ PWINDOW->m_sGroupData.locked = false;
+ PWINDOW->m_sGroupData.head = false;
+ PWINDOWINDIR->insertWindowToGroup(PWINDOW);
+ PWINDOWINDIR->setGroupCurrent(PWINDOW);
PWINDOW->updateWindowDecos();
g_pLayoutManager->getCurrentLayout()->recalculateWindow(PWINDOW);
+ g_pCompositor->focusWindow(PWINDOW);
}
void CKeybindManager::moveOutOfGroup(std::string args) {