diff options
| author | vaxerski <vaxry@vaxry.net> | 2022-08-13 10:08:35 +0200 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2022-08-13 10:08:35 +0200 |
| commit | 214c2c7b1c0182594a07a2c5ac7d99e9d7b5fcb3 (patch) | |
| tree | 812f3d7dc2894bde117ac0919c4886d52d634842 /src/layout/DwindleLayout.cpp | |
| parent | 9136783e9ceb10834a0da33f25d20eaca8591f6b (diff) | |
fix groups not updating size on head change
Diffstat (limited to 'src/layout/DwindleLayout.cpp')
| -rw-r--r-- | src/layout/DwindleLayout.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/layout/DwindleLayout.cpp b/src/layout/DwindleLayout.cpp index fa9cbeab..192fe7c2 100644 --- a/src/layout/DwindleLayout.cpp +++ b/src/layout/DwindleLayout.cpp @@ -63,6 +63,20 @@ SDwindleNodeData* SDwindleNodeData::getGroupHead() { return this; } +SDwindleNodeData* SDwindleNodeData::getGroupVisible() { + SDwindleNodeData* current = this->pNextGroupMember; + + while (current != this) { + if (!current->pWindow->m_bHidden) { + return current; + } + + current = current->pNextGroupMember; + } + + return this; +} + void SDwindleNodeData::setGroupFocusedNode(SDwindleNodeData* pMember) { SDwindleNodeData* current = this->pNextGroupMember; @@ -222,6 +236,14 @@ void CHyprDwindleLayout::applyNodeDataToWindow(SDwindleNodeData* pNode, bool for PWINDOW->m_vRealSize.warp(); } + if (pNode->isGroupMember() && pNode->groupHead) { + // update visible node + const auto PVISNODE = pNode->getGroupVisible(); + + PVISNODE->pWindow->m_vRealSize = PWINDOW->m_vRealSize.goalv(); + PVISNODE->pWindow->m_vRealPosition = PWINDOW->m_vRealPosition.goalv(); + } + PWINDOW->updateWindowDecos(); } |
