summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Wolff <oliver.wolff@qt.io>2021-09-30 11:04:48 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-09-30 13:06:31 +0000
commitbf4cf5a235ab6cdd454bb3b5169d12af5fb3725d (patch)
treef9a4acc384e2713e867a0536ba16a1a92b48c0cc
parent245a817941cf4733690ca618a8e806c106dd9c66 (diff)
windows qpa: Handle invisible child windows gracefully on dpi changes
Fixes: QTBUG-96466 Change-Id: I58d90e85b4bb837df2dc5fd89abe984dadcd468d Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit 8d6e825ddfa14f75959ae20a76e4e1a34f4faec2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/plugins/platforms/windows/qwindowscontext.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp
index 433e58a97a..bbdf1ad692 100644
--- a/src/plugins/platforms/windows/qwindowscontext.cpp
+++ b/src/plugins/platforms/windows/qwindowscontext.cpp
@@ -1474,6 +1474,8 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message,
// Scale child QPlatformWindow size. Windows sends WM_DPICHANGE to top-level windows only.
for (QWindow *childWindow : platformWindow->window()->findChildren<QWindow *>()) {
QWindowsWindow *platformChildWindow = static_cast<QWindowsWindow *>(childWindow->handle());
+ if (!platformChildWindow)
+ continue;
QRect currentGeometry = platformChildWindow->geometry();
QRect scaledGeometry = QRect(currentGeometry.topLeft() * scale, currentGeometry.size() * scale);
platformChildWindow->setGeometry(scaledGeometry);