summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows/qwindowsscreen.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-07-19 01:00:40 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-07-19 01:00:41 +0200
commit8f0790dd90f3fcaefa1a74ca1ce9bce84064eb10 (patch)
treeabc028924edde03ed173c2ba16e25daca38d7acd /src/plugins/platforms/windows/qwindowsscreen.cpp
parent82aabafadad2010f0f20abeeb7234057e3c10e9f (diff)
parent69ef6e821287d324459336dd1292d19d272386b8 (diff)
Merge remote-tracking branch 'origin/5.13' into dev
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsscreen.cpp')
-rw-r--r--src/plugins/platforms/windows/qwindowsscreen.cpp31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/plugins/platforms/windows/qwindowsscreen.cpp b/src/plugins/platforms/windows/qwindowsscreen.cpp
index d919d97211..282c0b107e 100644
--- a/src/plugins/platforms/windows/qwindowsscreen.cpp
+++ b/src/plugins/platforms/windows/qwindowsscreen.cpp
@@ -303,23 +303,28 @@ void QWindowsScreen::handleChanges(const QWindowsScreenData &newData)
m_data.hMonitor = newData.hMonitor;
}
- if (m_data.geometry != newData.geometry || m_data.availableGeometry != newData.availableGeometry) {
- m_data.geometry = newData.geometry;
- m_data.availableGeometry = newData.availableGeometry;
- QWindowSystemInterface::handleScreenGeometryChange(screen(),
- newData.geometry, newData.availableGeometry);
- }
- if (!qFuzzyCompare(m_data.dpi.first, newData.dpi.first)
- || !qFuzzyCompare(m_data.dpi.second, newData.dpi.second)) {
- m_data.dpi = newData.dpi;
+ // QGuiApplicationPrivate::processScreenGeometryChange() checks and emits
+ // DPI and orientation as well, so, assign new values and emit DPI first.
+ const bool geometryChanged = m_data.geometry != newData.geometry
+ || m_data.availableGeometry != newData.availableGeometry;
+ const bool dpiChanged = !qFuzzyCompare(m_data.dpi.first, newData.dpi.first)
+ || !qFuzzyCompare(m_data.dpi.second, newData.dpi.second);
+ const bool orientationChanged = m_data.orientation != newData.orientation;
+ m_data.dpi = newData.dpi;
+ m_data.orientation = newData.orientation;
+ m_data.geometry = newData.geometry;
+ m_data.availableGeometry = newData.availableGeometry;
+
+ if (dpiChanged) {
QWindowSystemInterface::handleScreenLogicalDotsPerInchChange(screen(),
newData.dpi.first,
newData.dpi.second);
}
- if (m_data.orientation != newData.orientation) {
- m_data.orientation = newData.orientation;
- QWindowSystemInterface::handleScreenOrientationChange(screen(),
- newData.orientation);
+ if (orientationChanged)
+ QWindowSystemInterface::handleScreenOrientationChange(screen(), newData.orientation);
+ if (geometryChanged) {
+ QWindowSystemInterface::handleScreenGeometryChange(screen(),
+ newData.geometry, newData.availableGeometry);
}
}