Details
-
Type:
Bug
-
Status: Reported
-
Priority:
P3: Somewhat important
-
Resolution: Unresolved
-
Affects Version/s: 6.2.2
-
Fix Version/s: None
-
Component/s: GUI: High-DPI
-
Labels:None
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); } }
Attachments
Issue Links
- relates to
-
QTBUG-95930 QGuiApplication::setHighDpiScaleFactorRoundingPolicy() ignored on Linux, always acts like PassThrough
-
- Reported
-
Gerrit Reviews
For Gerrit Dashboard: QTBUG-99546 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
412296,3 | Apply ScaleFactorRoundingPolicy to QT_SCREEN_SCALE_FACTORS | dev | qt/qtbase | Status: NEW | +1 | 0 |