From 9ad145a1021ea48beec65f234137d23e05c30918 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sun, 12 Nov 2023 22:49:40 +0000 Subject: [PATCH] borders-plus-plus: fix workspace offset calculation --- borders-plus-plus/borderDeco.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/borders-plus-plus/borderDeco.cpp b/borders-plus-plus/borderDeco.cpp index 5baf5d8..08597eb 100644 --- a/borders-plus-plus/borderDeco.cpp +++ b/borders-plus-plus/borderDeco.cpp @@ -77,11 +77,14 @@ void CBordersPlusPlus::draw(CMonitor* pMonitor, float a, const Vector2D& offset) if (*PBORDERS < 1) return; + const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(m_pWindow->m_iWorkspaceID); + const auto WORKSPACEOFFSET = PWORKSPACE && !m_pWindow->m_bPinned ? PWORKSPACE->m_vRenderOffset.vec() : Vector2D(); + auto rounding = m_pWindow->rounding() == 0 ? 0 : m_pWindow->rounding() * pMonitor->scale + *PBORDERSIZE; const auto ORIGINALROUND = rounding == 0 ? 0 : m_pWindow->rounding() * pMonitor->scale + *PBORDERSIZE; CBox fullBox = {m_vLastWindowPos.x, m_vLastWindowPos.y, m_vLastWindowSize.x, m_vLastWindowSize.y}; - fullBox.translate(offset - pMonitor->vecPosition); + fullBox.translate(offset - pMonitor->vecPosition + WORKSPACEOFFSET); double fullThickness = 0; @@ -129,11 +132,7 @@ eDecorationType CBordersPlusPlus::getDecorationType() { } void CBordersPlusPlus::updateWindow(CWindow* pWindow) { - const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(pWindow->m_iWorkspaceID); - - const auto WORKSPACEOFFSET = PWORKSPACE && !pWindow->m_bPinned ? PWORKSPACE->m_vRenderOffset.vec() : Vector2D(); - - m_vLastWindowPos = pWindow->m_vRealPosition.vec() + WORKSPACEOFFSET; + m_vLastWindowPos = pWindow->m_vRealPosition.vec(); m_vLastWindowSize = pWindow->m_vRealSize.vec(); damageEntire();