summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 112be432..e2bcbf1e 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -92,10 +92,12 @@ static void renderSurface(struct wlr_surface* surface, int x, int y, void* data)
}
}
- if (!INTERACTIVERESIZEINPROGRESS && PSURFACE && PWINDOW && PWINDOW->m_vRealSize.goal() > PWINDOW->m_vReportedSize && PWINDOW->m_vReportedSize > Vector2D{1, 1}) {
- Vector2D size =
- Vector2D{windowBox.w * (PWINDOW->m_vReportedSize.x / PWINDOW->m_vRealSize.value().x), windowBox.h * (PWINDOW->m_vReportedSize.y / PWINDOW->m_vRealSize.value().y)};
- Vector2D correct = Vector2D{windowBox.w, windowBox.h} - size;
+ if (!INTERACTIVERESIZEINPROGRESS && PSURFACE && PWINDOW && PWINDOW->m_vRealSize.goal().floor() > PWINDOW->m_vReportedSize && PWINDOW->m_vReportedSize > Vector2D{1, 1}) {
+ Vector2D coeff = PWINDOW->m_vReportedSize / PWINDOW->m_vRealSize.value();
+ Vector2D coeff2 = PWINDOW->m_vReportedSize / PWINDOW->m_vRealSize.goal();
+
+ Vector2D size = Vector2D{windowBox.w, windowBox.h} * coeff;
+ Vector2D correct = Vector2D{windowBox.w, windowBox.h} - Vector2D{windowBox.w, windowBox.h} * coeff2;
windowBox.translate(correct / 2.0);