File 0002-Set-Display-m_started-early.patch of Package sddm
From 1e56412d495b13b469f9a73efdc99701d48b831e Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Mon, 15 Jul 2024 21:10:12 +0200
Subject: [PATCH 2/5] Set Display::m_started early
It's only read to check whether start() and stop() should do anything,
so set it true as soon as it attempted to start anything.
---
src/daemon/Display.cpp | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/src/daemon/Display.cpp b/src/daemon/Display.cpp
index 1a0a369..91e4dac 100644
--- a/src/daemon/Display.cpp
+++ b/src/daemon/Display.cpp
@@ -205,7 +205,12 @@ namespace SDDM {
}
bool Display::start() {
- return m_started || m_displayServer->start();
+ if (m_started)
+ return true;
+
+ m_started = true;
+
+ return m_displayServer->start();
}
bool Display::attemptAutologin() {
@@ -256,9 +261,6 @@ namespace SDDM {
// reset first flag
daemonApp->first = false;
-
- // set flags
- m_started = true;
}
void Display::handleAutologinFailure() {
@@ -268,10 +270,6 @@ namespace SDDM {
}
void Display::displayServerStarted() {
- // check flag
- if (m_started)
- return;
-
// setup display
m_displayServer->setupDisplay();
@@ -283,9 +281,6 @@ namespace SDDM {
// reset first flag
daemonApp->first = false;
- // set flags
- m_started = true;
-
const bool autologinStarted = attemptAutologin();
if (!autologinStarted)
handleAutologinFailure();
@@ -484,7 +479,6 @@ namespace SDDM {
OrgFreedesktopLogin1ManagerInterface manager(Logind::serviceName(), Logind::managerPath(), QDBusConnection::systemBus());
manager.UnlockSession(m_reuseSessionId);
manager.ActivateSession(m_reuseSessionId);
- m_started = true;
} else {
if (qobject_cast<XorgDisplayServer *>(m_displayServer))
m_auth->setCookie(qobject_cast<XorgDisplayServer *>(m_displayServer)->cookie());
--
2.46.0