diff --git a/ksmserver/logout.cpp b/ksmserver/logout.cpp index 7b3287102..0b45d2c68 100644 --- a/ksmserver/logout.cpp +++ b/ksmserver/logout.cpp @@ -211,7 +211,6 @@ void KSMServer::performLogout() QPalette palette; palette.setColor( QApplication::desktop()->backgroundRole(), Qt::black ); QApplication::setPalette(palette); - wmPhase1WaitingCount = 0; saveType = saveSession?SmSaveBoth:SmSaveGlobal; #ifndef NO_LEGACY_SESSION_MANAGEMENT performLegacySessionSave(); @@ -249,7 +248,6 @@ void KSMServer::performLogout() void KSMServer::saveCurrentSession() { - abort(); // FIXME IMPLEMENT NEW SAVING ALSO HERE! if ( state != Idle ) return; @@ -258,13 +256,15 @@ void KSMServer::saveCurrentSession() state = Checkpoint; - wmPhase1WaitingCount = 0; saveType = SmSaveLocal; saveSession = true; #ifndef NO_LEGACY_SESSION_MANAGEMENT performLegacySessionSave(); #endif + auto aboutToSaveCall = m_kwinInterface->aboutToSaveSession(currentSession()); + aboutToSaveCall.waitForFinished(); + const auto pendingClients = clients; for (KSMClient *c : pendingClients) { SmsSaveYourself( c->connection(), saveType, false, SmInteractStyleNone, false ); diff --git a/ksmserver/server.cpp b/ksmserver/server.cpp index 5aae42b85..0fcb95068 100644 --- a/ksmserver/server.cpp +++ b/ksmserver/server.cpp @@ -620,7 +620,6 @@ KSMServer::KSMServer(InitFlags flags) state = Idle; saveSession = false; - wmPhase1WaitingCount = 0; KConfigGroup config(KSharedConfig::openConfig(), "General"); clientInteracting = nullptr; xonCommand = config.readEntry( "xonCommand", "xon" ); diff --git a/ksmserver/server.h b/ksmserver/server.h index 8afb5560c..1b55cf832 100644 --- a/ksmserver/server.h +++ b/ksmserver/server.h @@ -217,7 +217,6 @@ private: }; State state; bool saveSession; - int wmPhase1WaitingCount; int saveType; bool clean;