mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-25 11:25:58 +01:00
check for render boxes
modified: src/render/decorations/CHyprGroupBarDecoration.cpp Signed-off-by: MightyPlaza <123664421+MightyPlaza@users.noreply.github.com>
This commit is contained in:
parent
af442d28cf
commit
a58b9cf578
1 changed files with 13 additions and 12 deletions
|
@ -89,7 +89,6 @@ void CHyprGroupBarDecoration::draw(CMonitor* pMonitor, float a, const Vector2D&
|
|||
const auto* const PCOLACTIVE = GROUPLOCKED ? PGROUPCOLACTIVELOCKED : PGROUPCOLACTIVE;
|
||||
const auto* const PCOLINACTIVE = GROUPLOCKED ? PGROUPCOLINACTIVELOCKED : PGROUPCOLINACTIVE;
|
||||
|
||||
// TODO: fix mouse event with rounding
|
||||
const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(m_pWindow->m_iWorkspaceID);
|
||||
const int ROUNDING = m_pWindow->getRealRounding();
|
||||
const int BORDERSIZE = m_pWindow->getRealBorderSize();
|
||||
|
@ -98,7 +97,6 @@ void CHyprGroupBarDecoration::draw(CMonitor* pMonitor, float a, const Vector2D&
|
|||
|
||||
float currentOffset = m_bInternalBar ? BAR_HORIZONTAL_PADDING : 0;
|
||||
|
||||
// TODO: check for invalid config
|
||||
if (BARW <= 0)
|
||||
return;
|
||||
|
||||
|
@ -172,6 +170,7 @@ void CHyprGroupBarDecoration::draw(CMonitor* pMonitor, float a, const Vector2D&
|
|||
CColor color =
|
||||
m_dwGroupMembers[i] == g_pCompositor->m_pLastWindow ? ((CGradientValueData*)PCOLACTIVE->get())->m_vColors[0] : ((CGradientValueData*)PCOLINACTIVE->get())->m_vColors[0];
|
||||
color.a *= a;
|
||||
if (barBox.width > 0 && barBox.height > 0)
|
||||
g_pHyprOpenGL->renderRect(&barBox, color, std::sqrt(m_iBarHeight) / 2);
|
||||
|
||||
// render title if necessary
|
||||
|
@ -179,10 +178,12 @@ void CHyprGroupBarDecoration::draw(CMonitor* pMonitor, float a, const Vector2D&
|
|||
CTitleTex* pTitleTex = textureFromTitle(m_dwGroupMembers[i]->m_szTitle);
|
||||
if (!pTitleTex)
|
||||
pTitleTex = m_sTitleTexs.titleTexs.emplace_back(std::make_unique<CTitleTex>(m_dwGroupMembers[i], Vector2D(textBox.width, textBox.height))).get();
|
||||
|
||||
if (textBox.width > 0 && textBox.height > 0)
|
||||
g_pHyprOpenGL->renderTexture(pTitleTex->tex, &textBox, 1.f);
|
||||
}
|
||||
|
||||
if (m_iGradientHeight != 0) {
|
||||
if (gradBox.width > 0 && gradBox.height > 0) {
|
||||
if (m_tGradientActive.m_iTexID == 0) // no idea why it doesn't work
|
||||
refreshGradients();
|
||||
|
||||
|
@ -349,7 +350,7 @@ void CHyprGroupBarDecoration::forceReload(CWindow* pWindow) {
|
|||
static auto* const PINTERNALBAR = &g_pConfigManager->getConfigValuePtr("group:groupbar:internal_bar")->intValue;
|
||||
|
||||
m_bEnabled = *PENABLED;
|
||||
m_iBarInternalHeight = *PHEIGHT + (*PMODE == 1 ? BAR_INDICATOR_HEIGHT + BAR_INTERNAL_PADDING : 0);
|
||||
m_iBarInternalHeight = std::max((long int)0, *PHEIGHT) + (*PMODE == 1 ? BAR_INDICATOR_HEIGHT + BAR_INTERNAL_PADDING : 0);
|
||||
m_iBarFullHeight = m_iBarInternalHeight + BAR_INTERNAL_PADDING + BAR_EXTERNAL_PADDING;
|
||||
|
||||
m_bOnTop = g_pConfigManager->getConfigValuePtr("group:groupbar:top")->intValue;
|
||||
|
|
Loading…
Reference in a new issue