From b1a0172a991a159570cb106c7b3c76354e33f5f3 Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik Date: Mon, 6 Apr 2020 17:01:47 +0200 Subject: [PATCH] Implement saveCurrentSession --- ksmserver/logout.cpp | 6 +++--- ksmserver/server.cpp | 1 - ksmserver/server.h | 1 - 3 files changed, 3 insertions(+), 5 deletions(-) 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;