From d0367d8560653eafdcce14778b2f44e6c6ddf707 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sat, 21 Oct 2023 19:51:14 +0100 Subject: [PATCH] renderer: use preOffset pos instead of offset offset is not passed to transformers, so if they change pos, decos will be in the wrong place --- src/render/Renderer.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 1757cba7..e0966302 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -379,8 +379,10 @@ void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec* } // clip box for animated offsets - Vector2D offset; + const Vector2D PREOFFSETPOS = {renderdata.x, renderdata.y}; if (!ignorePosition && pWindow->m_bIsFloating && !pWindow->m_bPinned) { + Vector2D offset; + if (PWORKSPACE->m_vRenderOffset.vec().x != 0) { const auto PWSMON = g_pCompositor->getMonitorFromID(PWORKSPACE->m_iMonitorID); const auto PROGRESS = PWORKSPACE->m_vRenderOffset.vec().x / PWSMON->vecSize.x; @@ -422,7 +424,7 @@ void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec* if (!pWindow->m_bIsFullscreen || PWORKSPACE->m_efFullscreenMode != FULLSCREEN_FULL) for (auto& wd : pWindow->m_dWindowDecorations) - wd->draw(pMonitor, renderdata.alpha * renderdata.fadeAlpha, offset); + wd->draw(pMonitor, renderdata.alpha * renderdata.fadeAlpha, Vector2D{renderdata.x, renderdata.y} - PREOFFSETPOS); static auto* const PXWLUSENN = &g_pConfigManager->getConfigValuePtr("xwayland:use_nearest_neighbor")->intValue; if (pWindow->m_bIsX11 && *PXWLUSENN)