From 0d60b9d0afe1f7b83a4c6f61f557a044c353f83b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 15 Jun 2022 23:36:12 +0200 Subject: [PATCH] Windows: Avoid accidentally copying QWindowsScreenManager Change-Id: I60b219e9a3ea62a96c369ee910eacf06d61f4f71 Reviewed-by: Friedemann Kleint (cherry picked from commit 7d2488280ee46fd07f31c895b765ee4072fc1a5a) Reviewed-by: Qt Cherry-pick Bot --- src/plugins/platforms/windows/qwindowsscreen.h | 1 + src/plugins/platforms/windows/qwindowstheme.cpp | 2 +- src/plugins/platforms/windows/qwindowswindow.cpp | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plugins/platforms/windows/qwindowsscreen.h b/src/plugins/platforms/windows/qwindowsscreen.h index 6c638842fea..0635f172ad8 100644 --- a/src/plugins/platforms/windows/qwindowsscreen.h +++ b/src/plugins/platforms/windows/qwindowsscreen.h @@ -92,6 +92,7 @@ private: class QWindowsScreenManager { + Q_DISABLE_COPY_MOVE(QWindowsScreenManager) public: using WindowsScreenList = QList; diff --git a/src/plugins/platforms/windows/qwindowstheme.cpp b/src/plugins/platforms/windows/qwindowstheme.cpp index 0f377d1241a..eff177b16fd 100644 --- a/src/plugins/platforms/windows/qwindowstheme.cpp +++ b/src/plugins/platforms/windows/qwindowstheme.cpp @@ -571,7 +571,7 @@ void QWindowsTheme::refreshFonts() if (!QGuiApplication::desktopSettingsAware()) return; NONCLIENTMETRICS ncm; - auto screenManager = QWindowsContext::instance()->screenManager(); + auto &screenManager = QWindowsContext::instance()->screenManager(); QWindowsContext::nonClientMetricsForScreen(&ncm, screenManager.screens().value(0)); qCDebug(lcQpaWindows) << __FUNCTION__ << ncm; const QFont menuFont = QWindowsFontDatabase::LOGFONT_to_QFont(ncm.lfMenuFont); diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp index 5a4cdf31ad1..93519dc7302 100644 --- a/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/src/plugins/platforms/windows/qwindowswindow.cpp @@ -1059,7 +1059,7 @@ QMargins QWindowsGeometryHint::frame(const QWindow *w, HWND hwnd, DWORD style, D return {}; if (QWindowsScreenManager::isSingleScreen()) return frameOnPrimaryScreen(w, style, exStyle); - auto screenManager = QWindowsContext::instance()->screenManager(); + auto &screenManager = QWindowsContext::instance()->screenManager(); auto screen = screenManager.screenForHwnd(hwnd); if (!screen) screen = screenManager.screens().value(0); @@ -1086,7 +1086,7 @@ QMargins QWindowsGeometryHint::frame(const QWindow *w, const QRect &geometry, return frameOnPrimaryScreen(w, style, exStyle); } qreal dpi = 96; - auto screenManager = QWindowsContext::instance()->screenManager(); + auto &screenManager = QWindowsContext::instance()->screenManager(); auto screen = screenManager.screenAtDp(geometry.center()); if (!screen) screen = screenManager.screens().value(0);