aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickwidgets/qquickwidget.cpp
diff options
context:
space:
mode:
authorDavid Edmundson <davidedmundson@kde.org>2022-12-06 12:31:54 +0000
committerDavid Edmundson <davidedmundson@kde.org>2023-05-11 12:57:13 +0300
commit1314592f41abecb6f1140d3bfe39bba8a2c4ea7e (patch)
tree35a751f189577949e414580574d114ff02f96549 /src/quickwidgets/qquickwidget.cpp
parent1257e1d3b264a2a358408b2bf8ad3814bdf7c1aa (diff)
QQuickWindow track changes via DevicePixelRatioChange event
Qt core gained a new event on the window when the dpr changes. This is important as the window DPR can differ from the screen device pixel ratio, it also allows us to get rid of one level of the screen connection tracking. Fixes: QTBUG-113236 Change-Id: I43f50a0ef98653553ea177dc72e1522036452496 Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/quickwidgets/qquickwidget.cpp')
-rw-r--r--src/quickwidgets/qquickwidget.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp
index 8a472a4f0a..2197ab834d 100644
--- a/src/quickwidgets/qquickwidget.cpp
+++ b/src/quickwidgets/qquickwidget.cpp
@@ -1681,15 +1681,20 @@ bool QQuickWidget::event(QEvent *e)
QScreen *newScreen = screen();
if (d->offscreenWindow)
d->offscreenWindow->setScreen(newScreen);
-
+ break;
+ }
+ case QEvent::DevicePixelRatioChange:
if (d->useSoftwareRenderer || d->outputTexture) {
// This will check the size taking the devicePixelRatio into account
// and recreate if needed.
createFramebufferObject();
d->render(true);
}
+ if (d->offscreenWindow) {
+ QEvent dprChangeEvent(QEvent::DevicePixelRatioChange);
+ QGuiApplication::sendEvent(d->offscreenWindow, &dprChangeEvent);
+ }
break;
- }
case QEvent::Show:
case QEvent::Move:
d->updatePosition();