mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-23 04:45:59 +01:00
fix groups not updating size on head change
This commit is contained in:
parent
9136783e9c
commit
214c2c7b1c
2 changed files with 23 additions and 0 deletions
|
@ -63,6 +63,20 @@ SDwindleNodeData* SDwindleNodeData::getGroupHead() {
|
||||||
return this;
|
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) {
|
void SDwindleNodeData::setGroupFocusedNode(SDwindleNodeData* pMember) {
|
||||||
SDwindleNodeData* current = this->pNextGroupMember;
|
SDwindleNodeData* current = this->pNextGroupMember;
|
||||||
|
|
||||||
|
@ -222,6 +236,14 @@ void CHyprDwindleLayout::applyNodeDataToWindow(SDwindleNodeData* pNode, bool for
|
||||||
PWINDOW->m_vRealSize.warp();
|
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();
|
PWINDOW->updateWindowDecos();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,7 @@ struct SDwindleNodeData {
|
||||||
void getAllChildrenRecursive(std::deque<SDwindleNodeData*>*);
|
void getAllChildrenRecursive(std::deque<SDwindleNodeData*>*);
|
||||||
bool isGroupMember();
|
bool isGroupMember();
|
||||||
SDwindleNodeData* getGroupHead();
|
SDwindleNodeData* getGroupHead();
|
||||||
|
SDwindleNodeData* getGroupVisible();
|
||||||
void setGroupFocusedNode(SDwindleNodeData*);
|
void setGroupFocusedNode(SDwindleNodeData*);
|
||||||
CHyprDwindleLayout* layout = nullptr;
|
CHyprDwindleLayout* layout = nullptr;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue