diff options
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/styles/qwindowsstyle.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/widgets/styles/qwindowsstyle.cpp b/src/widgets/styles/qwindowsstyle.cpp index e48e17ed3b..f79136757a 100644 --- a/src/widgets/styles/qwindowsstyle.cpp +++ b/src/widgets/styles/qwindowsstyle.cpp @@ -358,18 +358,15 @@ static QScreen *screenOf(const QWidget *w) // and account for secondary screens with differing logical DPI. qreal QWindowsStylePrivate::nativeMetricScaleFactor(const QWidget *widget) { - const QPlatformScreen *screen = screenOf(widget)->handle(); - const qreal scale = screen ? (screen->logicalDpi().first / screen->logicalBaseDpi().first) - : QWindowsStylePrivate::appDevicePixelRatio(); + qreal scale = QHighDpiScaling::factor(screenOf(widget)); qreal result = qreal(1) / scale; if (QGuiApplicationPrivate::screen_list.size() > 1) { const QScreen *primaryScreen = QGuiApplication::primaryScreen(); const QScreen *screen = screenOf(widget); if (screen != primaryScreen) { - const qreal primaryLogicalDpi = primaryScreen->handle()->logicalDpi().first; - const qreal logicalDpi = screen->handle()->logicalDpi().first; - if (!qFuzzyCompare(primaryLogicalDpi, logicalDpi)) - result *= logicalDpi / primaryLogicalDpi; + qreal primaryScale = QHighDpiScaling::factor(primaryScreen); + if (!qFuzzyCompare(scale, primaryScale)) + result *= scale / primaryScale; } } return result; |