diff --git a/src/helpers/Box.cpp b/src/helpers/Box.cpp index 29aa81fa..3d57bc79 100644 --- a/src/helpers/Box.cpp +++ b/src/helpers/Box.cpp @@ -112,6 +112,10 @@ CBox CBox::roundInternal() { return CBox{std::floor(x), std::floor(y), std::floor(newW), std::floor(newH)}; } +CBox CBox::copy() const { + return CBox{*this}; +} + Vector2D CBox::pos() const { return {x, y}; } diff --git a/src/helpers/Box.hpp b/src/helpers/Box.hpp index cb07df06..5cb7f17f 100644 --- a/src/helpers/Box.hpp +++ b/src/helpers/Box.hpp @@ -52,6 +52,8 @@ class CBox { CBox& addExtents(const SWindowDecorationExtents& e); CBox& expand(const double& value); + CBox copy() const; + SWindowDecorationExtents extentsFrom(const CBox&); // this is the big box Vector2D middle() const; diff --git a/src/render/decorations/CHyprDropShadowDecoration.cpp b/src/render/decorations/CHyprDropShadowDecoration.cpp index 7138dc20..d8972376 100644 --- a/src/render/decorations/CHyprDropShadowDecoration.cpp +++ b/src/render/decorations/CHyprDropShadowDecoration.cpp @@ -129,7 +129,7 @@ void CHyprDropShadowDecoration::draw(CMonitor* pMonitor, float a, const Vector2D CRegion saveDamage = g_pHyprOpenGL->m_RenderData.damage; g_pHyprOpenGL->m_RenderData.damage = fullBox; - g_pHyprOpenGL->m_RenderData.damage.subtract(windowBox.expand(-ROUNDING * pMonitor->scale)).intersect(saveDamage); + g_pHyprOpenGL->m_RenderData.damage.subtract(windowBox.copy().expand(-ROUNDING * pMonitor->scale)).intersect(saveDamage); alphaFB.bind();