diff --git a/src/desktop/Window.cpp b/src/desktop/Window.cpp index 3b6a15c3..333f43c3 100644 --- a/src/desktop/Window.cpp +++ b/src/desktop/Window.cpp @@ -184,7 +184,6 @@ SWindowDecorationExtents CWindow::getFullWindowReservedArea() { } void CWindow::updateWindowDecos() { - bool recalc = false; if (!m_bIsMapped || isHidden()) return; @@ -193,8 +192,7 @@ void CWindow::updateWindowDecos() { for (auto it = m_dWindowDecorations.begin(); it != m_dWindowDecorations.end(); it++) { if (it->get() == wd) { g_pDecorationPositioner->uncacheDecoration(it->get()); - it = m_dWindowDecorations.erase(it); - recalc = true; + it = m_dWindowDecorations.erase(it); if (it == m_dWindowDecorations.end()) break; } @@ -203,9 +201,6 @@ void CWindow::updateWindowDecos() { g_pDecorationPositioner->onWindowUpdate(m_pSelf.lock()); - if (recalc) - g_pLayoutManager->getCurrentLayout()->recalculateWindow(m_pSelf.lock()); - m_vDecosToRemove.clear(); // make a copy because updateWindow can remove decos. diff --git a/src/render/decorations/DecorationPositioner.cpp b/src/render/decorations/DecorationPositioner.cpp index 5690ea65..39aacd81 100644 --- a/src/render/decorations/DecorationPositioner.cpp +++ b/src/render/decorations/DecorationPositioner.cpp @@ -267,6 +267,7 @@ void CDecorationPositioner::onWindowUpdate(PHLWINDOW pWindow) { } WINDOWDATA->extents = {{stickyOffsetXL + reservedXL, stickyOffsetYT + reservedYT}, {stickyOffsetXR + reservedXR, stickyOffsetYB + reservedYB}}; + g_pLayoutManager->getCurrentLayout()->recalculateWindow(pWindow); } void CDecorationPositioner::onWindowUnmap(PHLWINDOW pWindow) {