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-18 01:00:08 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-07-18 01:00:20 +0200
commitd3de20d4091619dcd9a90ba044cf0d7ea06d4d6e (patch)
treedf89adfa2a8bd4dea0d90344a648ae8bbc1583be /src/plugins/platforms/windows/qwindowsscreen.cpp
parent8abbbb4c482c32cd5342f5f8576cee8cbacc3737 (diff)
parent7576250b1c6d27dcc85e059d6f43830d1767e7f7 (diff)
Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"
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 cc0f3c1a6e..4137a4bd9a 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);
}
}