diff options
| author | David Edmundson <davidedmundson@kde.org> | 2022-12-06 12:31:54 +0000 |
|---|---|---|
| committer | David Edmundson <davidedmundson@kde.org> | 2023-05-11 12:57:13 +0300 |
| commit | 1314592f41abecb6f1140d3bfe39bba8a2c4ea7e (patch) | |
| tree | 35a751f189577949e414580574d114ff02f96549 /src/quickwidgets/qquickwidget.cpp | |
| parent | 1257e1d3b264a2a358408b2bf8ad3814bdf7c1aa (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.cpp | 9 |
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(); |
