File fix-hidpi.patch of Package sddm
Index: sddm-0.19.0/src/daemon/Greeter.cpp
===================================================================
--- sddm-0.19.0.orig/src/daemon/Greeter.cpp
+++ sddm-0.19.0/src/daemon/Greeter.cpp
@@ -117,6 +117,10 @@ namespace SDDM {
env.insert(QStringLiteral("XAUTHORITY"), m_authPath);
env.insert(QStringLiteral("XCURSOR_THEME"), xcursorTheme);
env.insert(QStringLiteral("QT_IM_MODULE"), mainConfig.InputMethod.get());
+ if (qEnvironmentVariableIsSet("QT_USE_PHYSICAL_DPI"))
+ env.insert(QStringLiteral("QT_USE_PHYSICAL_DPI"), qEnvironmentVariable("QT_USE_PHYSICAL_DPI"));
+ if (qEnvironmentVariableIsSet("QT_SCALE_FACTOR_ROUNDING_POLICY"))
+ env.insert(QStringLiteral("QT_SCALE_FACTOR_ROUNDING_POLICY"), qEnvironmentVariable("QT_SCALE_FACTOR_ROUNDING_POLICY"));
m_process->setProcessEnvironment(env);
// start greeter
Index: sddm-0.19.0/src/auth/Auth.cpp
===================================================================
--- sddm-0.19.0.orig/src/auth/Auth.cpp
+++ sddm-0.19.0/src/auth/Auth.cpp
@@ -355,7 +355,16 @@ namespace SDDM {
if (d->autologin)
args << QStringLiteral("--autologin");
if (d->greeter)
+ {
args << QStringLiteral("--greeter");
+
+ QProcessEnvironment env = d->child->processEnvironment();
+ if (qEnvironmentVariableIsSet("QT_USE_PHYSICAL_DPI"))
+ env.insert(QStringLiteral("QT_USE_PHYSICAL_DPI"), qEnvironmentVariable("QT_USE_PHYSICAL_DPI"));
+ if (qEnvironmentVariableIsSet("QT_SCALE_FACTOR_ROUNDING_POLICY"))
+ env.insert(QStringLiteral("QT_SCALE_FACTOR_ROUNDING_POLICY"), qEnvironmentVariable("QT_SCALE_FACTOR_ROUNDING_POLICY"));
+ d->child->setProcessEnvironment(env);
+ }
d->child->start(QStringLiteral("%1/sddm-helper").arg(QStringLiteral(LIBEXEC_INSTALL_DIR)), args);
}
}
Index: sddm-0.19.0/src/helper/Backend.cpp
===================================================================
--- sddm-0.19.0.orig/src/helper/Backend.cpp
+++ sddm-0.19.0/src/helper/Backend.cpp
@@ -70,6 +70,10 @@ namespace SDDM {
env.insert(QStringLiteral("USER"), QString::fromLocal8Bit(pw->pw_name));
env.insert(QStringLiteral("LOGNAME"), QString::fromLocal8Bit(pw->pw_name));
env.insert(QStringLiteral("XAUTHLOCALHOSTNAME"), QHostInfo::localHostName());
+ if (qEnvironmentVariableIsSet("QT_USE_PHYSICAL_DPI"))
+ env.insert(QStringLiteral("QT_USE_PHYSICAL_DPI"), qEnvironmentVariable("QT_USE_PHYSICAL_DPI"));
+ if (qEnvironmentVariableIsSet("QT_SCALE_FACTOR_ROUNDING_POLICY"))
+ env.insert(QStringLiteral("QT_SCALE_FACTOR_ROUNDING_POLICY"), qEnvironmentVariable("QT_SCALE_FACTOR_ROUNDING_POLICY"));
#if defined(Q_OS_FREEBSD)
/* get additional environment variables via setclassenvironment();
this needs to be done here instead of in UserSession::setupChildProcess