parent
e694df9db3
commit
a6722afc57
@ -1,49 +0,0 @@
|
|||||||
On branch topic-session-save
|
|
||||||
Changes to be committed:
|
|
||||||
(use "git reset HEAD <file>..." to unstage)
|
|
||||||
|
|
||||||
modified: sm.cpp
|
|
||||||
|
|
||||||
diff --git a/sm.cpp b/sm.cpp
|
|
||||||
index 2098b7f..05a5d77 100644
|
|
||||||
--- a/sm.cpp
|
|
||||||
+++ b/sm.cpp
|
|
||||||
@@ -30,6 +30,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#include "workspace.h"
|
|
||||||
#include "client.h"
|
|
||||||
#include <QDebug>
|
|
||||||
+#include <QFile>
|
|
||||||
#include <QSocketNotifier>
|
|
||||||
#include <QSessionManager>
|
|
||||||
|
|
||||||
@@ -64,18 +65,30 @@ void Workspace::saveState(QSessionManager &sm)
|
|
||||||
// too late, as possible user interaction may change some things.
|
|
||||||
// Phase2 is still needed though (ICCCM 5.2)
|
|
||||||
KConfig *config = sessionConfig(sm.sessionId(), sm.sessionKey());
|
|
||||||
+
|
|
||||||
if (!sm.isPhase2()) {
|
|
||||||
KConfigGroup cg(config, "Session");
|
|
||||||
cg.writeEntry("AllowsInteraction", sm.allowsInteraction());
|
|
||||||
sessionSaveStarted();
|
|
||||||
if (gs_sessionManagerIsKSMServer) // save stacking order etc. before "save file?" etc. dialogs change it
|
|
||||||
storeSession(config, SMSavePhase0);
|
|
||||||
+ // don't save it to disk
|
|
||||||
+ config->markAsClean();
|
|
||||||
sm.release(); // Qt doesn't automatically release in this case (bug?)
|
|
||||||
sm.requestPhase2();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
storeSession(config, gs_sessionManagerIsKSMServer ? SMSavePhase2 : SMSavePhase2Full);
|
|
||||||
config->sync();
|
|
||||||
+
|
|
||||||
+ // generate discard command for new file
|
|
||||||
+ QString localFilePath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QLatin1Char('/') + config->name();
|
|
||||||
+ if (QFile::exists(localFilePath)) {
|
|
||||||
+ QStringList discard;
|
|
||||||
+ discard << QLatin1String("rm");
|
|
||||||
+ discard << localFilePath;
|
|
||||||
+ sm.setDiscardCommand(discard);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
// I bet this is broken, just like everywhere else in KDE
|
|
Loading…
Reference in new issue