Also disable automatic scaling on Qt >= 5.14

Summary:
Applications which set `Qt::AA_EnableHighDpiScaling` use the DPI of the monitor the window is on to calculate an additional scaling factor.
Plasma sets `QT_SCREEN_SCALE_FACTORS` in the environment for manual specification of per-monitor scale, which combined with the automatic scaling may result in double scaling.
To disable the automatic scaling, `QT_AUTO_SCREEN_SCALE_FACTOR=0` has to be set, even on Qt 5.14.

As a side effect, this works around QTBUG-80967 as well.

BUG: 415421

Test Plan: On X11, with a >144dpi monitor and a scaling factor of 2 set manually, scaling was doubled previously. Now it works as expected.

Reviewers: #plasma, apol, davidedmundson, fvogt

Reviewed By: #plasma, davidedmundson, fvogt

Subscribers: acooligan, fvogt, asturmlechner, dfaure, davidedmundson, anthonyfieroni, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D26185
wilder-5.18
Fabian Vogt 6 years ago
parent 34ccaa4f25
commit ea66bff2af
  1. 2
      startkde/startplasma.cpp

@ -222,11 +222,9 @@ void runEnvironmentScripts()
void setupPlasmaEnvironment()
{
#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
//Manually disable auto scaling because we are scaling above
//otherwise apps that manually opt in for high DPI get auto scaled by the developer AND manually scaled by us
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "0");
#endif
qputenv("KDE_FULL_SESSION", "true");
qputenv("KDE_SESSION_VERSION", "5");

Loading…
Cancel
Save