diff options
author | Eric Hameleers <alien@slackware.com> | 2020-07-31 16:13:18 +0200 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2020-07-31 16:13:18 +0200 |
commit | 703149752c6265b36973d2c1f0f5a69721e3128a (patch) | |
tree | 7ded0d801771d5705f48ffbfb48f37dd4829439e /kde/patch/kscreenlocker/kscreenlocker_crash_force_softrender.patch | |
parent | dd005500c624d127321ff3fe14a0c29bfa8d67f7 (diff) | |
parent | cd7ff1719433fbb3b6a8304596be173bc1b91b00 (diff) | |
download | ktown-703149752c6265b36973d2c1f0f5a69721e3128a.tar.gz ktown-703149752c6265b36973d2c1f0f5a69721e3128a.tar.xz |
Diffstat (limited to '')
-rw-r--r-- | kde/patch/kscreenlocker/kscreenlocker_crash_force_softrender.patch | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/kde/patch/kscreenlocker/kscreenlocker_crash_force_softrender.patch b/kde/patch/kscreenlocker/kscreenlocker_crash_force_softrender.patch deleted file mode 100644 index 06045d7..0000000 --- a/kde/patch/kscreenlocker/kscreenlocker_crash_force_softrender.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 875e44f56d4597ba3b65f5bf4ff2b315376c05a4 Mon Sep 17 00:00:00 2001 -From: Kai Uwe Broulik <kde@privat.broulik.de> -Date: Wed, 11 Jul 2018 18:01:41 +0200 -Subject: Force software rendering when greeter crashed - -We have a fallback QML theme for when the look and feel package is broken but when the -graphics driver is broken (e.g. proprietary graphics driver update) the lock screen would -stop working. When the greeter crashed, better play safe and force software rendering - -Reviewed-By: d_ed ---- - ksldapp.cpp | 13 +++++++++++-- - ksldapp.h | 9 +++++++++ - 2 files changed, 20 insertions(+), 2 deletions(-) - -diff --git a/ksldapp.cpp b/ksldapp.cpp -index 892826f..5fe28ea 100644 ---- a/ksldapp.cpp -+++ b/ksldapp.cpp -@@ -66,6 +66,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. - namespace ScreenLocker - { - -+static const QString s_qtQuickBackend = QStringLiteral("QT_QUICK_BACKEND"); -+ - static KSldApp * s_instance = nullptr; - - KSldApp* KSldApp::self() -@@ -226,6 +228,8 @@ void KSldApp::initialize() - // failure, restart lock process - m_greeterCrashedCounter++; - if (m_greeterCrashedCounter < 4) { -+ // Perhaps it crashed due to a graphics driver issue, force software rendering now -+ setForceSoftwareRendering(true); - startLockProcess(EstablishLock::Immediate); - } else if (m_lockWindow) { - m_lockWindow->emergencyShow(); -@@ -385,6 +389,7 @@ void KSldApp::lock(EstablishLock establishLock) - - m_lockState = AcquiringLock; - -+ setForceSoftwareRendering(false); - // start unlock screen process - startLockProcess(establishLock); - emit lockStateChanged(); -@@ -546,6 +551,8 @@ bool KSldApp::isFdoPowerInhibited() const - - void KSldApp::startLockProcess(EstablishLock establishLock) - { -+ QProcessEnvironment env = m_greeterEnv; -+ - if (m_isWayland && m_waylandDisplay) { - int sx[2]; - if (socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, sx) < 0) { -@@ -566,9 +573,7 @@ void KSldApp::startLockProcess(EstablishLock establishLock) - emit greeterClientConnectionChanged(); - int socket = dup(sx[1]); - if (socket >= 0) { -- QProcessEnvironment env = m_greeterEnv; - env.insert("WAYLAND_SOCKET", QByteArray::number(socket)); -- m_lockProcess->setProcessEnvironment(env); - } - } - QStringList args; -@@ -587,6 +592,9 @@ void KSldApp::startLockProcess(EstablishLock establishLock) - if (m_lockGrace == -1) { - args << QStringLiteral("--nolock"); - } -+ if (m_forceSoftwareRendering) { -+ env.insert(s_qtQuickBackend, QStringLiteral("software")); -+ } - - // start the Wayland server - int fd = m_waylandServer->start(); -@@ -598,6 +606,7 @@ void KSldApp::startLockProcess(EstablishLock establishLock) - args << QStringLiteral("--ksldfd"); - args << QString::number(fd); - -+ m_lockProcess->setProcessEnvironment(env); - m_lockProcess->start(QStringLiteral(KSCREENLOCKER_GREET_BIN), args); - close(fd); - } -diff --git a/ksldapp.h b/ksldapp.h -index 4849588..b6d6703 100644 ---- a/ksldapp.h -+++ b/ksldapp.h -@@ -127,6 +127,14 @@ public: - m_lockGrace = msec; - } - -+ bool forceSoftwareRendering() const { -+ return m_forceSoftwareRendering; -+ } -+ -+ void setForceSoftwareRendering(bool force) { -+ m_forceSoftwareRendering = force; -+ } -+ - Q_SIGNALS: - void locked(); - void unlocked(); -@@ -179,6 +187,7 @@ private: - LogindIntegration *m_logind; - GlobalAccel *m_globalAccel = nullptr; - bool m_hasXInput2 = false; -+ bool m_forceSoftwareRendering = false; - - bool m_isX11; - bool m_isWayland; --- -cgit v0.11.2 - |