summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2026-02-28 22:03:14 +0000
committerVaxry <vaxry@vaxry.net>2026-02-28 22:03:14 +0000
commit85c2764f5ec6317044fa3eb128dfba4a3b347422 (patch)
tree851406b6e8bc3d8c80ef3c52219cd493bdaef60d /src/render
parentc2bed4103c0382de83f5277c5583bb15ae702c2a (diff)
deco/border: fix damageEntire
Diffstat (limited to 'src/render')
-rw-r--r--src/render/decorations/CHyprBorderDecoration.cpp23
1 files changed, 6 insertions, 17 deletions
diff --git a/src/render/decorations/CHyprBorderDecoration.cpp b/src/render/decorations/CHyprBorderDecoration.cpp
index 66a15fc8..3e4f04a9 100644
--- a/src/render/decorations/CHyprBorderDecoration.cpp
+++ b/src/render/decorations/CHyprBorderDecoration.cpp
@@ -117,23 +117,12 @@ void CHyprBorderDecoration::damageEntire() {
if (!validMapped(m_window) || m_window->m_fullscreenState.internal == FSMODE_FULLSCREEN)
return;
- auto surfaceBox = m_window->getWindowMainSurfaceBox();
- const auto ROUNDING = m_window->rounding();
- const auto ROUNDINGSIZE = ROUNDING - M_SQRT1_2 * ROUNDING + 2;
- const auto BORDERSIZE = m_window->getRealBorderSize() + 1;
-
- const auto PWINDOWWORKSPACE = m_window->m_workspace;
- if (PWINDOWWORKSPACE && PWINDOWWORKSPACE->m_renderOffset->isBeingAnimated() && !m_window->m_pinned)
- surfaceBox.translate(PWINDOWWORKSPACE->m_renderOffset->value());
- surfaceBox.translate(m_window->m_floatingOffset);
-
- CBox surfaceBoxExpandedBorder = surfaceBox;
- surfaceBoxExpandedBorder.expand(BORDERSIZE);
- CBox surfaceBoxShrunkRounding = surfaceBox;
- surfaceBoxShrunkRounding.expand(-ROUNDINGSIZE);
-
- CRegion borderRegion(surfaceBoxExpandedBorder);
- borderRegion.subtract(surfaceBoxShrunkRounding);
+ const auto GLOBAL_BOX = assignedBoxGlobal();
+ const auto ROUNDING = m_window->rounding();
+ const auto BORDERSIZE = m_window->getRealBorderSize() + 1;
+
+ CRegion borderRegion(GLOBAL_BOX);
+ borderRegion.subtract(GLOBAL_BOX.copy().expand(-(BORDERSIZE + ROUNDING)));
for (auto const& m : g_pCompositor->m_monitors) {
if (!g_pHyprRenderer->shouldRenderWindow(m_window.lock(), m)) {