diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2016-03-01 15:40:52 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2016-04-05 07:27:37 +0000 |
commit | 34a984c80739d034b6c0c9e0f29c73b03ddc5aa1 (patch) | |
tree | e52bf8be9a50124293e32040a8c079e2ffb07225 /src/widgets/styles/qwindowsstyle.cpp | |
parent | 670a9c00ef5ee4bbcbaaefa9482e39359180ac4f (diff) |
Windows XP style: Change theme logic to use qreal.
Avoid rounding errors, thus preventing sizes becoming
too small when High DPI scaling is in effect. Also fix
division by zero crashes should a scale factor be below 1.
Task-number: QTBUG-49374
Task-number: QTBUG-51552
Change-Id: I72718521bc3c7f6b0e42392ea2d2d3bbc61e2faa
Reviewed-by: Marko Kangas <marko.kangas@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
Diffstat (limited to 'src/widgets/styles/qwindowsstyle.cpp')
-rw-r--r-- | src/widgets/styles/qwindowsstyle.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/widgets/styles/qwindowsstyle.cpp b/src/widgets/styles/qwindowsstyle.cpp index 5d02bc17ae..ab3c8df256 100644 --- a/src/widgets/styles/qwindowsstyle.cpp +++ b/src/widgets/styles/qwindowsstyle.cpp @@ -111,8 +111,6 @@ enum QSliderDirection { SlUp, SlDown, SlLeft, SlRight }; \internal */ -int QWindowsStylePrivate::m_appDevicePixelRatio = 0; - QWindowsStylePrivate::QWindowsStylePrivate() : alt_down(false), menuBarTimer(0) { @@ -125,11 +123,9 @@ QWindowsStylePrivate::QWindowsStylePrivate() #endif } -int QWindowsStylePrivate::appDevicePixelRatio() +qreal QWindowsStylePrivate::appDevicePixelRatio() { - if (!QWindowsStylePrivate::m_appDevicePixelRatio) - QWindowsStylePrivate::m_appDevicePixelRatio = qRound(qApp->devicePixelRatio()); - return QWindowsStylePrivate::m_appDevicePixelRatio; + return qApp->devicePixelRatio(); } // Returns \c true if the toplevel parent of \a widget has seen the Alt-key @@ -406,7 +402,7 @@ int QWindowsStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QW { int ret = QWindowsStylePrivate::pixelMetricFromSystemDp(pm, opt, widget); if (ret != QWindowsStylePrivate::InvalidMetric) - return ret / QWindowsStylePrivate::devicePixelRatio(widget); + return qRound(qreal(ret) / QWindowsStylePrivate::devicePixelRatio(widget)); ret = QWindowsStylePrivate::fixedPixelMetric(pm); if (ret != QWindowsStylePrivate::InvalidMetric) |