summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2023-02-19 21:07:32 +0000
committerGitHub <noreply@github.com>2023-02-19 21:07:32 +0000
commite5a4c0c986f72813e8822f31ed3d5fa6be1b6c13 (patch)
tree8ce0ad44055c63e905303f49da61c9f44316170a /src/render
parent2363cc2572c8b1f99a3ac5ff4104067b0503a302 (diff)
Group/Tab Rework (#1580)
Diffstat (limited to 'src/render')
-rw-r--r--src/render/decorations/CHyprGroupBarDecoration.cpp27
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];