summaryrefslogtreecommitdiff
path: root/src/render/decorations/CHyprDropShadowDecoration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/decorations/CHyprDropShadowDecoration.cpp')
-rw-r--r--src/render/decorations/CHyprDropShadowDecoration.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/render/decorations/CHyprDropShadowDecoration.cpp b/src/render/decorations/CHyprDropShadowDecoration.cpp
index 50841d6b..bcc4c84e 100644
--- a/src/render/decorations/CHyprDropShadowDecoration.cpp
+++ b/src/render/decorations/CHyprDropShadowDecoration.cpp
@@ -42,15 +42,19 @@ void CHyprDropShadowDecoration::damageEntire() {
return; // disabled
const auto PWINDOW = m_window.lock();
+ const auto pos = PWINDOW->m_realPosition->value();
+ const auto size = PWINDOW->m_realSize->value();
- CBox shadowBox = {PWINDOW->m_realPosition->value().x - m_extents.topLeft.x, PWINDOW->m_realPosition->value().y - m_extents.topLeft.y,
- PWINDOW->m_realSize->value().x + m_extents.topLeft.x + m_extents.bottomRight.x,
- PWINDOW->m_realSize->value().y + m_extents.topLeft.y + m_extents.bottomRight.y};
+ CBox shadowBox = {pos.x - m_extents.topLeft.x, pos.y - m_extents.topLeft.y, pos.x + size.x + m_extents.bottomRight.x, pos.y + size.y + m_extents.bottomRight.y};
- const auto PWORKSPACE = PWINDOW->m_workspace;
- if (PWORKSPACE && PWORKSPACE->m_renderOffset->isBeingAnimated() && !PWINDOW->m_pinned)
- shadowBox.translate(PWORKSPACE->m_renderOffset->value());
- shadowBox.translate(PWINDOW->m_floatingOffset);
+ const auto PWORKSPACE = PWINDOW->m_workspace;
+ const auto applyOffset = [&](CBox& b) {
+ if (PWORKSPACE && PWORKSPACE->m_renderOffset->isBeingAnimated() && !PWINDOW->m_pinned)
+ b.translate(PWORKSPACE->m_renderOffset->value());
+ b.translate(PWINDOW->m_floatingOffset);
+ };
+
+ applyOffset(shadowBox);
static auto PSHADOWIGNOREWINDOW = CConfigValue<Hyprlang::INT>("decoration:shadow:ignore_window");
const auto ROUNDING = PWINDOW->rounding();
@@ -59,9 +63,7 @@ void CHyprDropShadowDecoration::damageEntire() {
CRegion shadowRegion(shadowBox);
if (*PSHADOWIGNOREWINDOW) {
CBox surfaceBox = PWINDOW->getWindowMainSurfaceBox();
- if (PWORKSPACE && PWORKSPACE->m_renderOffset->isBeingAnimated() && !PWINDOW->m_pinned)
- surfaceBox.translate(PWORKSPACE->m_renderOffset->value());
- surfaceBox.translate(PWINDOW->m_floatingOffset);
+ applyOffset(surfaceBox);
surfaceBox.expand(-ROUNDINGSIZE);
shadowRegion.subtract(CRegion(surfaceBox));
}