Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
None
-
6.4
-
None
-
9a39b3c796e603c8a82f4f9968467b5aeb43be30
Description
QT_SCREEN_SCALE_FACTORS doesn't seem to follow rounding policy, is this on a reason? This variable is used by KDE to set per-screen scale factor, so if an app can't handle fractional scale factors, it will look really ugly in such environment.
The fix is as simple as
diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp index 996eed40cb..1b9a7929bf 100644 --- a/src/gui/kernel/qhighdpiscaling.cpp +++ b/src/gui/kernel/qhighdpiscaling.cpp @@ -632,13 +632,13 @@ qreal QHighDpiScaling::screenSubfactor(const QPlatformScreen *screen) if (auto qScreen = screen->screen()) { auto screenFactor = qScreen->property(scaleFactorProperty).toReal(&screenPropertyUsed); if (screenPropertyUsed) - factor = screenFactor; + factor = roundScaleFactor(screenFactor); } if (!screenPropertyUsed) { auto byNameIt = QHighDpiScaling::m_namedScreenScaleFactors.constFind(screen->name()); if ((screenPropertyUsed = byNameIt != QHighDpiScaling::m_namedScreenScaleFactors.cend())) - factor = *byNameIt; + factor = roundScaleFactor(*byNameIt); } }
This is a re-submit of QTBUG-99546 as the fix was reverted