summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-11-08 09:11:01 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-11-08 09:11:02 +0100
commit78c687f98eabb3da00026ac2375cdb4bb5770a0a (patch)
tree0bd20a65aa9051229e813bc6b09cb59f8b5778f1 /src/gui/kernel
parent3e529369eb16704aa0d601a7f4b8e490dc8b772c (diff)
parenta866055d18b2c2efc0f3cf5307d8eac78cce26eb (diff)
Merge remote-tracking branch 'origin/5.14' into 5.15
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qhighdpiscaling.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp
index 76548d5d86..0782a49481 100644
--- a/src/gui/kernel/qhighdpiscaling.cpp
+++ b/src/gui/kernel/qhighdpiscaling.cpp
@@ -644,7 +644,7 @@ QPoint QHighDpiScaling::mapPositionFromGlobal(const QPoint &pos, const QPoint &w
qreal QHighDpiScaling::screenSubfactor(const QPlatformScreen *screen)
{
- qreal factor = qreal(1.0);
+ auto factor = qreal(1.0);
if (!screen)
return factor;
@@ -657,14 +657,16 @@ qreal QHighDpiScaling::screenSubfactor(const QPlatformScreen *screen)
// Check if there is a factor set on the screen object or associated
// with the screen name. These are mutually exclusive, so checking
// order is not significant.
- QVariant byIndex = screen->screen()->property(scaleFactorProperty);
- auto byNameIt = qNamedScreenScaleFactors()->constFind(screen->name());
- if (byIndex.isValid()) {
- screenPropertyUsed = true;
- factor = byIndex.toReal();
- } else if (byNameIt != qNamedScreenScaleFactors()->cend()) {
- screenPropertyUsed = true;
- factor = *byNameIt;
+ if (auto qScreen = screen->screen()) {
+ auto screenFactor = qScreen->property(scaleFactorProperty).toReal(&screenPropertyUsed);
+ if (screenPropertyUsed)
+ factor = screenFactor;
+ }
+
+ if (!screenPropertyUsed) {
+ auto byNameIt = qNamedScreenScaleFactors()->constFind(screen->name());
+ if ((screenPropertyUsed = byNameIt != qNamedScreenScaleFactors()->cend()))
+ factor = *byNameIt;
}
}