|
|
5d36d8 |
From b8e1b19177e1bbe866ed5561880eaaa7852d31dd Mon Sep 17 00:00:00 2001
|
|
|
5d36d8 |
From: Ray Strode <rstrode@redhat.com>
|
|
|
5d36d8 |
Date: Fri, 20 Dec 2013 16:14:16 -0500
|
|
|
5d36d8 |
Subject: [PATCH 07/19] manager: Don't clear saved session if autosaving is
|
|
|
5d36d8 |
disabled
|
|
|
5d36d8 |
|
|
|
5d36d8 |
Now that we support on-demand saving again, we need to make sure
|
|
|
5d36d8 |
we don't wipe that away at log out.
|
|
|
5d36d8 |
---
|
|
|
5d36d8 |
gnome-session/gsm-manager.c | 1 -
|
|
|
5d36d8 |
1 file changed, 1 deletion(-)
|
|
|
5d36d8 |
|
|
|
5d36d8 |
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
|
|
|
5d36d8 |
index 012f3d3f..ce2ffbcf 100644
|
|
|
5d36d8 |
--- a/gnome-session/gsm-manager.c
|
|
|
5d36d8 |
+++ b/gnome-session/gsm-manager.c
|
|
|
5d36d8 |
@@ -1790,61 +1790,60 @@ on_xsmp_client_register_confirmed (GsmXSMPClient *client,
|
|
|
5d36d8 |
app = find_app_for_startup_id (manager, id);
|
|
|
5d36d8 |
|
|
|
5d36d8 |
if (app != NULL) {
|
|
|
5d36d8 |
gsm_app_set_registered (app, TRUE);
|
|
|
5d36d8 |
}
|
|
|
5d36d8 |
}
|
|
|
5d36d8 |
|
|
|
5d36d8 |
static gboolean
|
|
|
5d36d8 |
auto_save_is_enabled (GsmManager *manager)
|
|
|
5d36d8 |
{
|
|
|
5d36d8 |
return g_settings_get_boolean (manager->priv->settings, KEY_AUTOSAVE_ONE_SHOT)
|
|
|
5d36d8 |
|| g_settings_get_boolean (manager->priv->settings, KEY_AUTOSAVE);
|
|
|
5d36d8 |
}
|
|
|
5d36d8 |
|
|
|
5d36d8 |
static void
|
|
|
5d36d8 |
maybe_save_session (GsmManager *manager)
|
|
|
5d36d8 |
{
|
|
|
5d36d8 |
GError *error;
|
|
|
5d36d8 |
|
|
|
5d36d8 |
if (gsm_system_is_login_session (manager->priv->system))
|
|
|
5d36d8 |
return;
|
|
|
5d36d8 |
|
|
|
5d36d8 |
/* We only allow session saving when session is running or when
|
|
|
5d36d8 |
* logging out */
|
|
|
5d36d8 |
if (manager->priv->phase != GSM_MANAGER_PHASE_RUNNING &&
|
|
|
5d36d8 |
manager->priv->phase != GSM_MANAGER_PHASE_END_SESSION) {
|
|
|
5d36d8 |
return;
|
|
|
5d36d8 |
}
|
|
|
5d36d8 |
|
|
|
5d36d8 |
if (!auto_save_is_enabled (manager)) {
|
|
|
5d36d8 |
- gsm_session_save_clear ();
|
|
|
5d36d8 |
return;
|
|
|
5d36d8 |
}
|
|
|
5d36d8 |
|
|
|
5d36d8 |
error = NULL;
|
|
|
5d36d8 |
gsm_session_save (manager->priv->clients, &error);
|
|
|
5d36d8 |
|
|
|
5d36d8 |
if (error) {
|
|
|
5d36d8 |
g_warning ("Error saving session: %s", error->message);
|
|
|
5d36d8 |
g_error_free (error);
|
|
|
5d36d8 |
}
|
|
|
5d36d8 |
}
|
|
|
5d36d8 |
|
|
|
5d36d8 |
static void
|
|
|
5d36d8 |
_handle_client_end_session_response (GsmManager *manager,
|
|
|
5d36d8 |
GsmClient *client,
|
|
|
5d36d8 |
gboolean is_ok,
|
|
|
5d36d8 |
gboolean do_last,
|
|
|
5d36d8 |
gboolean cancel,
|
|
|
5d36d8 |
const char *reason)
|
|
|
5d36d8 |
{
|
|
|
5d36d8 |
/* just ignore if received outside of shutdown */
|
|
|
5d36d8 |
if (manager->priv->phase < GSM_MANAGER_PHASE_QUERY_END_SESSION) {
|
|
|
5d36d8 |
return;
|
|
|
5d36d8 |
}
|
|
|
5d36d8 |
|
|
|
5d36d8 |
g_debug ("GsmManager: Response from end session request: is-ok=%d do-last=%d cancel=%d reason=%s", is_ok, do_last, cancel, reason ? reason :"");
|
|
|
5d36d8 |
|
|
|
5d36d8 |
if (cancel) {
|
|
|
5d36d8 |
cancel_end_session (manager);
|
|
|
5d36d8 |
return;
|
|
|
5d36d8 |
--
|
|
|
5d36d8 |
2.12.0
|
|
|
5d36d8 |
|