From 5edb4e4a304bbef1de30a36f7b921ea328d7efc6 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Mon, 13 Nov 2023 16:42:45 +0000 Subject: decorations: recalc layout and positioner on add/remove --- src/render/decorations/DecorationPositioner.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/render/decorations/DecorationPositioner.cpp') diff --git a/src/render/decorations/DecorationPositioner.cpp b/src/render/decorations/DecorationPositioner.cpp index 937eaa9a..b41b92a9 100644 --- a/src/render/decorations/DecorationPositioner.cpp +++ b/src/render/decorations/DecorationPositioner.cpp @@ -95,6 +95,16 @@ void CDecorationPositioner::sanitizeDatas() { }); } +void CDecorationPositioner::forceRecalcFor(CWindow* pWindow) { + const auto WIT = std::find_if(m_mWindowDatas.begin(), m_mWindowDatas.end(), [&](const auto& other) { return other.first == pWindow; }); + if (WIT == m_mWindowDatas.end()) + return; + + const auto WINDOWDATA = &WIT->second; + + WINDOWDATA->needsRecalc = true; +} + void CDecorationPositioner::onWindowUpdate(CWindow* pWindow) { if (!g_pCompositor->windowExists(pWindow) || !pWindow->m_bIsMapped) return; -- cgit v1.2.3