Commit 71ce1f7a authored by David Edmundson's avatar David Edmundson

Add an explicit quit mechanism controlled by plasma

On X Kwin's lifespan used to be managed by XSMP. This accidentally broke
in 5.20 as we made kwin start before ksmserver for speed purposes.

This leaves kwin to be killed by the display manager as the X connection
closes, but this can lead to deadlocks.

BUG:428817

On wayland kwin's lifespan is mapped to the lifespan of the ksmserver
binary. This is problematic as it makes our entire xwayland robustness
redundant if we ultimately rely on an application that /has/ to run in
xwayland.

BUG: 427688
parent 8f104815
......@@ -19,6 +19,9 @@
<method name="finishSaveSession">
<arg name="name" type="s" direction="in" />
</method>
<!-- Shutdown kwin at the end of the session -->
<method name="quit">
</method>
</interface>
</node>
......@@ -379,5 +379,10 @@ void SessionManager::finishSaveSession(const QString &name)
emit finishSessionSaveRequested(name);
}
void SessionManager::quit()
{
qApp->quit();
}
} // namespace
......@@ -43,6 +43,7 @@ public Q_SLOTS: // DBus API
void loadSession(const QString &name);
void aboutToSaveSession(const QString &name);
void finishSaveSession(const QString &name);
void quit();
private:
void setState(SessionState state);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment