From 8991be671fb231ebe268352fe9cc883911b066c2 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Wed, 25 Oct 2023 22:05:04 +0100 Subject: renderer: respect viewporter dest on base surfaces --- src/render/Renderer.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/render') diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 4326b89f..f5a79bdf 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -31,17 +31,18 @@ void renderSurface(struct wlr_surface* surface, int x, int y, void* data) { if (PSURFACE && !PSURFACE->m_bFillIgnoreSmall && PSURFACE->small() /* guarantees m_pOwner */) { const auto CORRECT = PSURFACE->correctSmallVec(); + const auto SIZE = PSURFACE->getViewporterCorrectedSize(); const auto INTERACTIVERESIZEINPROGRESS = g_pInputManager->currentlyDraggedWindow == PSURFACE->m_pOwner && g_pInputManager->dragMode == MBIND_RESIZE; if (!INTERACTIVERESIZEINPROGRESS) { windowBox.x += CORRECT.x; windowBox.y += CORRECT.y; - windowBox.width = (double)surface->current.buffer_width * (PSURFACE->m_pOwner->m_vRealSize.vec().x / PSURFACE->m_pOwner->m_vReportedSize.x); - windowBox.height = (double)surface->current.buffer_height * (PSURFACE->m_pOwner->m_vRealSize.vec().y / PSURFACE->m_pOwner->m_vReportedSize.y); + windowBox.width = SIZE.x * (PSURFACE->m_pOwner->m_vRealSize.vec().x / PSURFACE->m_pOwner->m_vReportedSize.x); + windowBox.height = SIZE.y * (PSURFACE->m_pOwner->m_vRealSize.vec().y / PSURFACE->m_pOwner->m_vReportedSize.y); } else { - windowBox.width = (double)surface->current.buffer_width; - windowBox.height = (double)surface->current.buffer_height; + windowBox.width = SIZE.x; + windowBox.height = SIZE.y; } } -- cgit v1.2.3