Group/Tab Rework (#1580)

This commit is contained in:
Vaxry 2023-02-19 21:07:32 +00:00 committed by GitHub
parent 2363cc2572
commit e5a4c0c986
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 268 additions and 495 deletions

View file

@ -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];