summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
Diffstat (limited to 'src/render')
-rw-r--r--src/render/decorations/DecorationPositioner.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/render/decorations/DecorationPositioner.cpp b/src/render/decorations/DecorationPositioner.cpp
index 4666a59e..3eb45546 100644
--- a/src/render/decorations/DecorationPositioner.cpp
+++ b/src/render/decorations/DecorationPositioner.cpp
@@ -297,13 +297,14 @@ SBoxExtents CDecorationPositioner::getWindowDecorationExtents(PHLWINDOW pWindow,
CBox accum = pWindow->getWindowMainSurfaceBox();
for (auto const& data : m_vWindowPositioningDatas) {
- if (data->pWindow.lock() != pWindow)
+ if (!data->pDecoration)
continue;
- if (!data->pWindow.lock() || !data->pDecoration)
+ if (!(data->pDecoration->getDecorationFlags() & DECORATION_ALLOWS_MOUSE_INPUT) && inputOnly)
continue;
- if (!(data->pDecoration->getDecorationFlags() & DECORATION_ALLOWS_MOUSE_INPUT) && inputOnly)
+ auto const window = data->pWindow.lock();
+ if (!window || window != pWindow)
continue;
CBox decoBox;
@@ -373,9 +374,10 @@ CBox CDecorationPositioner::getBoxWithIncludedDecos(PHLWINDOW pWindow) {
}
CBox CDecorationPositioner::getWindowDecorationBox(IHyprWindowDecoration* deco) {
- const auto DATA = getDataFor(deco, deco->m_pWindow.lock());
+ auto const window = deco->m_pWindow.lock();
+ const auto DATA = getDataFor(deco, window);
CBox box = DATA->lastReply.assignedGeometry;
- box.translate(getEdgeDefinedPoint(DATA->positioningInfo.edges, deco->m_pWindow.lock()));
+ box.translate(getEdgeDefinedPoint(DATA->positioningInfo.edges, window));
return box;
}