From 05047f60f4a6303a26f5ecef712f249b770f27b9 Mon Sep 17 00:00:00 2001 From: MightyPlaza <123664421+MightyPlaza@users.noreply.github.com> Date: Mon, 3 Jul 2023 10:49:56 +0000 Subject: groupbar fixes (#2630) Fixes multiple groupbar decoration issues: - togglegroup removes fullscreen to avoid to avoid weird state - fixes issue where a group had multiple windows with head = true - fixes issue where merging 2 groups would cause a window to have 2 groupbar decorations - fixes issue where merging a group with more than 1 window into another group would make windows have no groupbar decoration - fixes issue where ungrouping windows could just move them into another group on the same workspace --------- Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com> --- src/Window.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/Window.cpp') diff --git a/src/Window.cpp b/src/Window.cpp index 4a419f23..e84c3d23 100644 --- a/src/Window.cpp +++ b/src/Window.cpp @@ -670,8 +670,9 @@ void CWindow::insertWindowToGroup(CWindow* pWindow) { const auto PTAIL = getGroupTail(); if (pWindow->m_sGroupData.pNextWindow) { + const auto PHEAD = pWindow->getGroupHead(); std::vector members; - CWindow* curr = pWindow; + CWindow* curr = PHEAD; do { const auto PLAST = curr; members.push_back(curr); @@ -679,7 +680,7 @@ void CWindow::insertWindowToGroup(CWindow* pWindow) { PLAST->m_sGroupData.pNextWindow = nullptr; PLAST->m_sGroupData.head = false; PLAST->m_sGroupData.locked = false; - } while (curr != pWindow); + } while (curr != PHEAD); for (auto& w : members) { insertWindowToGroup(w); @@ -690,8 +691,6 @@ void CWindow::insertWindowToGroup(CWindow* pWindow) { PTAIL->m_sGroupData.pNextWindow = pWindow; pWindow->m_sGroupData.pNextWindow = PHEAD; - - setGroupCurrent(pWindow); } void CWindow::updateGroupOutputs() { -- cgit v1.2.3