summaryrefslogtreecommitdiff
path: root/src/layout/DwindleLayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout/DwindleLayout.cpp')
-rw-r--r--src/layout/DwindleLayout.cpp22
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();
}