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
openSUSE Build Service is sponsored by