Commit e53e3e17 authored by David Edmundson's avatar David Edmundson

[ksmserver] Fix session restore check

Summary:
The old code checked ksmserver->defaultSession in the Startup
constructor before ksmserver was set up by main.cpp

This refactor moves it to the job, so we'll be checking if we're
restoring or not after ksmserver has been set up by main.cpp as well as
making the initial code path a bit clearer.

Test Plan:
Logged in with session restore
Logged in with a default session

Reviewers: ahartmetz

Reviewed By: ahartmetz

Subscribers: ahartmetz, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D16550
parent 50815c0c
......@@ -198,12 +198,9 @@ Startup::Startup(KSMServer *parent):
ksmserver->setupShortcuts(); // done only here, because it needs kglobalaccel :-/
});
if (ksmserver->defaultSession()) {
connect(phase1, &KJob::finished, phase2, &KJob::start);
} else {
connect(phase1, &KJob::finished, restoreSession, &KJob::start);
connect(restoreSession, &KJob::finished, phase2, &KJob::start);
}
connect(phase1, &KJob::finished, restoreSession, &KJob::start);
connect(restoreSession, &KJob::finished, phase2, &KJob::start);
connect(phase1, &KJob::finished, this, []() {
NotificationThread *loginSound = new NotificationThread();
connect(loginSound, &NotificationThread::finished, loginSound, &NotificationThread::deleteLater);
......@@ -291,6 +288,11 @@ RestoreSessionJob::RestoreSessionJob(KSMServer *server): KJob(),
void RestoreSessionJob::start()
{
if (m_ksmserver->defaultSession()) {
QTimer::singleShot(0, this, [this]() {emitResult();});
return;
}
m_ksmserver->lastAppStarted = 0;
m_ksmserver->lastIdStarted.clear();
m_ksmserver->state = KSMServer::Restoring;
......
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