diff options
| author | MightyPlaza <123664421+MightyPlaza@users.noreply.github.com> | 2023-07-03 10:49:56 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-03 12:49:56 +0200 |
| commit | 05047f60f4a6303a26f5ecef712f249b770f27b9 (patch) | |
| tree | 10cca6c3f8f095be53d162ddafa64d0401530026 /src/Window.cpp | |
| parent | 738ec900f4d5c5e2b00f90e71221ca380555b874 (diff) | |
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>
Diffstat (limited to 'src/Window.cpp')
| -rw-r--r-- | src/Window.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
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<CWindow*> 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() { |
