diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2023-02-19 21:07:32 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-19 21:07:32 +0000 |
| commit | e5a4c0c986f72813e8822f31ed3d5fa6be1b6c13 (patch) | |
| tree | 8ce0ad44055c63e905303f49da61c9f44316170a /src/render | |
| parent | 2363cc2572c8b1f99a3ac5ff4104067b0503a302 (diff) | |
Group/Tab Rework (#1580)
Diffstat (limited to 'src/render')
| -rw-r--r-- | src/render/decorations/CHyprGroupBarDecoration.cpp | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/render/decorations/CHyprGroupBarDecoration.cpp b/src/render/decorations/CHyprGroupBarDecoration.cpp index 7b7c1576..ca9d1b72 100644 --- a/src/render/decorations/CHyprGroupBarDecoration.cpp +++ b/src/render/decorations/CHyprGroupBarDecoration.cpp @@ -33,24 +33,29 @@ void CHyprGroupBarDecoration::updateWindow(CWindow* pWindow) { m_vLastWindowSize = pWindow->m_vRealSize.vec(); } - // let's check if the window group is different. - - if (g_pLayoutManager->getCurrentLayout()->getLayoutName() != "dwindle") { - // ???? + if (!m_pWindow->m_sGroupData.pNextWindow) { m_pWindow->m_vDecosToRemove.push_back(this); return; } - // get the group info - SLayoutMessageHeader header; - header.pWindow = m_pWindow; + m_dwGroupMembers.clear(); + CWindow* curr = pWindow; + CWindow* head = nullptr; + while (!curr->m_sGroupData.head) { + curr = curr->m_sGroupData.pNextWindow; + } - m_dwGroupMembers = std::any_cast<std::deque<CWindow*>>(g_pLayoutManager->getCurrentLayout()->layoutMessage(header, "groupinfo")); + head = curr; + m_dwGroupMembers.push_back(curr); + curr = curr->m_sGroupData.pNextWindow; + while (curr != head) { + m_dwGroupMembers.push_back(curr); + curr = curr->m_sGroupData.pNextWindow; + } damageEntire(); if (m_dwGroupMembers.size() == 0) { - // remove m_pWindow->m_vDecosToRemove.push_back(this); return; } @@ -86,8 +91,8 @@ void CHyprGroupBarDecoration::draw(CMonitor* pMonitor, float a, const Vector2D& scaleBox(&rect, pMonitor->scale); - static auto* const PGROUPCOLACTIVE = &g_pConfigManager->getConfigValuePtr("dwindle:col.group_border_active")->data; - static auto* const PGROUPCOLINACTIVE = &g_pConfigManager->getConfigValuePtr("dwindle:col.group_border")->data; + static auto* const PGROUPCOLACTIVE = &g_pConfigManager->getConfigValuePtr("general:col.group_border_active")->data; + static auto* const PGROUPCOLINACTIVE = &g_pConfigManager->getConfigValuePtr("general:col.group_border")->data; CColor color = m_dwGroupMembers[i] == g_pCompositor->m_pLastWindow ? ((CGradientValueData*)PGROUPCOLACTIVE->get())->m_vColors[0] : ((CGradientValueData*)PGROUPCOLINACTIVE->get())->m_vColors[0]; |
