From 91eca07923e924c3bd65364d5d0c7195fe6ef460 Mon Sep 17 00:00:00 2001 From: Alvin Wong Date: Sat, 5 Mar 2022 13:30:22 +0800 Subject: Make logicalSize consistent in QQuickWindow The logicalSize should always be calculated as `QSizeF(pixelSize) / devicePixelRatio`, so that it accurately reflects the actual size of the rendering surface. Extends 17a280995ab546074fa7e9a009642fec5f23c64e. Task-number: QTBUG-101269 Change-Id: Idd1b2337b6ef3456b570c0e619d5b9365ac93495 Reviewed-by: Laszlo Agocs --- src/quick/items/qquickwindow.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 50036e2ca1..f68848444e 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -643,19 +643,13 @@ void QQuickWindowPrivate::renderSceneGraph(const QSize &size, const QSize &surfa const qreal devicePixelRatio = q->effectiveDevicePixelRatio(); QSize pixelSize; - QSizeF logicalSize; - if (redirect.rt.renderTarget) { + if (redirect.rt.renderTarget) pixelSize = redirect.rt.renderTarget->pixelSize(); - logicalSize = pixelSize / devicePixelRatio; - } else { - if (surfaceSize.isEmpty()) { - pixelSize = size * devicePixelRatio; - logicalSize = size; - } else { - pixelSize = surfaceSize; - logicalSize = QSizeF(surfaceSize) / devicePixelRatio; - } - } + else if (surfaceSize.isEmpty()) + pixelSize = size * devicePixelRatio; + else + pixelSize = surfaceSize; + QSizeF logicalSize = QSizeF(pixelSize) / devicePixelRatio; renderer->setDevicePixelRatio(devicePixelRatio); renderer->setDeviceRect(QRect(QPoint(0, 0), pixelSize)); -- cgit v1.2.3