r19565 - /desktop/experimental/gnome-session/debian/patches/10_session_save.patch
joss at users.alioth.debian.org
joss at users.alioth.debian.org
Mon Apr 13 14:46:40 UTC 2009
Author: joss
Date: Mon Apr 13 14:46:40 2009
New Revision: 19565
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=19565
Log:
Also handle Phase 2 saving
Modified:
desktop/experimental/gnome-session/debian/patches/10_session_save.patch
Modified: desktop/experimental/gnome-session/debian/patches/10_session_save.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/gnome-session/debian/patches/10_session_save.patch?rev=19565&op=diff
==============================================================================
--- desktop/experimental/gnome-session/debian/patches/10_session_save.patch (original)
+++ desktop/experimental/gnome-session/debian/patches/10_session_save.patch Mon Apr 13 14:46:40 2009
@@ -34,7 +34,7 @@
Index: gnome-session-2.26.0.90/gnome-session/gsm-manager.c
===================================================================
--- gnome-session-2.26.0.90.orig/gnome-session/gsm-manager.c 2009-04-12 11:21:47.550484405 +0200
-+++ gnome-session-2.26.0.90/gnome-session/gsm-manager.c 2009-04-13 15:07:16.949982874 +0200
++++ gnome-session-2.26.0.90/gnome-session/gsm-manager.c 2009-04-13 16:18:30.938481203 +0200
@@ -67,6 +67,7 @@
#define GSM_MANAGER_DBUS_NAME "org.gnome.SessionManager"
@@ -43,14 +43,59 @@
#define GDM_FLEXISERVER_COMMAND "gdmflexiserver"
#define GDM_FLEXISERVER_ARGS "--startnew Standard"
-@@ -1056,6 +1057,24 @@ query_end_session_complete (GsmManager *
-
- }
-
+@@ -1056,6 +1057,69 @@ query_end_session_complete (GsmManager *
+
+ }
+
++static gboolean
++_client_request_save (GsmClient *client,
++ ClientEndSessionData *data)
++{
++ gboolean ret;
++ GError *error;
++
++ error = NULL;
++ ret = gsm_client_request_save (client, data->flags, &error);
++ if (ret) {
++ g_debug ("GsmManager: adding client to query clients: %s", gsm_client_peek_id (client));
++ data->manager->priv->query_clients = g_slist_prepend (data->manager->priv->query_clients,
++ client);
++ } else if (error) {
++ g_debug ("GsmManager: unable to query client: %s", error->message);
++ g_error_free (error);
++ }
++
++ return FALSE;
++}
++
++static gboolean
++_client_request_save_helper (const char *id,
++ GsmClient *client,
++ ClientEndSessionData *data)
++{
++ return _client_request_save (client, data);
++}
++
+static void
+query_save_session_complete (GsmManager *manager)
+{
+ GError *error = NULL;
++
++ if (g_slist_length (manager->priv->next_query_clients) > 0) {
++ ClientEndSessionData data;
++
++ data.manager = manager;
++ data.flags = GSM_CLIENT_END_SESSION_FLAG_LAST;
++
++ g_slist_foreach (manager->priv->next_query_clients,
++ (GFunc)_client_request_save,
++ &data);
++
++ g_slist_free (manager->priv->next_query_clients);
++ manager->priv->next_query_clients = NULL;
++
++ return;
++ }
+
+ if (manager->priv->query_timeout_id > 0) {
+ g_source_remove (manager->priv->query_timeout_id);
@@ -68,7 +113,7 @@
static guint32
generate_cookie (void)
{
-@@ -1130,6 +1149,21 @@ _on_query_end_session_timeout (GsmManage
+@@ -1130,6 +1194,21 @@ _on_query_end_session_timeout (GsmManage
return FALSE;
}
@@ -90,7 +135,7 @@
static void
do_phase_query_end_session (GsmManager *manager)
{
-@@ -1766,20 +1800,27 @@ on_client_end_session_response (GsmClien
+@@ -1766,20 +1845,31 @@ on_client_end_session_response (GsmClien
const char *reason,
GsmManager *manager)
{
@@ -106,6 +151,10 @@
+ manager->priv->query_clients = g_slist_remove (manager->priv->query_clients, client);
+
+ if (manager->priv->phase == GSM_MANAGER_PHASE_RUNNING) {
++ if (do_last) {
++ manager->priv->next_query_clients = g_slist_prepend (manager->priv->next_query_clients,
++ client);
++ }
+ if (manager->priv->query_clients == NULL) {
+ query_save_session_complete (manager);
+ }
@@ -122,7 +171,7 @@
if (! is_ok) {
guint cookie;
GsmInhibitor *inhibitor;
-@@ -1871,6 +1912,15 @@ on_xsmp_client_logout_request (GsmXSMPCl
+@@ -1871,6 +1961,15 @@ on_xsmp_client_logout_request (GsmXSMPCl
}
static void
@@ -138,7 +187,7 @@
on_store_client_added (GsmStore *store,
const char *id,
GsmManager *manager)
-@@ -1891,6 +1941,10 @@ on_store_client_added (GsmStore *store
+@@ -1891,6 +1990,10 @@ on_store_client_added (GsmStore *store
"logout-request",
G_CALLBACK (on_xsmp_client_logout_request),
manager);
@@ -149,36 +198,15 @@
}
g_signal_connect (client,
-@@ -2840,6 +2894,59 @@ gsm_manager_shutdown (GsmManager *manage
- return TRUE;
- }
-
-+static gboolean
-+_client_request_save (const char *id,
-+ GsmClient *client,
-+ GsmManager *manager)
-+{
-+ gboolean ret;
-+ GError *error;
-+
-+ error = NULL;
-+ ret = gsm_client_request_save (client, &error);
-+ if (ret) {
-+ g_debug ("GsmManager: adding client to query clients: %s", gsm_client_peek_id (client));
-+ manager->priv->query_clients = g_slist_prepend (manager->priv->query_clients,
-+ client);
-+ } else if (error) {
-+ g_debug ("GsmManager: unable to query client: %s", error->message);
-+ g_error_free (error);
-+ }
-+
-+ return FALSE;
-+}
-+
-+gboolean
+@@ -2841,6 +2944,41 @@ gsm_manager_shutdown (GsmManager *manage
+ }
+
+ gboolean
+gsm_manager_save_session (GsmManager *manager,
+ GError **error)
+{
++ ClientEndSessionData data;
++
+ g_debug ("GsmManager: SaveSession called");
+
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
@@ -191,9 +219,11 @@
+ return FALSE;
+ }
+
++ data.manager = manager;
++ data.flags = 0;
+ gsm_store_foreach (manager->priv->clients,
-+ (GsmStoreFunc)_client_request_save,
-+ manager);
++ (GsmStoreFunc)_client_request_save_helper,
++ &data);
+
+ if (manager->priv->query_clients) {
+ manager->priv->query_timeout_id = g_timeout_add_seconds (GSM_MANAGER_SAVE_SESSION_TIMEOUT,
@@ -206,9 +236,10 @@
+ }
+}
+
- gboolean
++gboolean
gsm_manager_can_shutdown (GsmManager *manager,
gboolean *shutdown_available,
+ GError **error)
Index: gnome-session-2.26.0.90/gnome-session/gsm-manager.h
===================================================================
--- gnome-session-2.26.0.90.orig/gnome-session/gsm-manager.h 2009-04-12 11:21:47.510481555 +0200
@@ -226,7 +257,7 @@
Index: gnome-session-2.26.0.90/gnome-session/gsm-xsmp-client.c
===================================================================
--- gnome-session-2.26.0.90.orig/gnome-session/gsm-xsmp-client.c 2009-04-12 11:21:47.462481949 +0200
-+++ gnome-session-2.26.0.90/gnome-session/gsm-xsmp-client.c 2009-04-13 10:52:33.417978598 +0200
++++ gnome-session-2.26.0.90/gnome-session/gsm-xsmp-client.c 2009-04-13 15:58:12.365981974 +0200
@@ -69,6 +69,7 @@ enum {
enum {
REGISTER_REQUEST,
@@ -235,12 +266,13 @@
LAST_SIGNAL
};
-@@ -522,6 +523,26 @@ xsmp_cancel_end_session (GsmClient *clie
+@@ -522,6 +523,30 @@ xsmp_cancel_end_session (GsmClient *clie
return TRUE;
}
+static gboolean
+xsmp_request_save (GsmClient *client,
++ guint flags,
+ GError **error)
+{
+ GsmXSMPClient *xsmp = (GsmXSMPClient *) client;
@@ -255,14 +287,17 @@
+ return FALSE;
+ }
+
-+ do_save_yourself (xsmp, SmSaveLocal, FALSE);
++ if (flags & GSM_CLIENT_END_SESSION_FLAG_LAST)
++ xsmp_save_yourself_phase2 (client);
++ else
++ do_save_yourself (xsmp, SmSaveLocal, FALSE);
+
+ return TRUE;
+}
static char *
get_desktop_file_path (GsmXSMPClient *client)
{
-@@ -982,6 +1003,7 @@ gsm_xsmp_client_class_init (GsmXSMPClien
+@@ -982,6 +1007,7 @@ gsm_xsmp_client_class_init (GsmXSMPClien
object_class->get_property = gsm_xsmp_client_get_property;
object_class->set_property = gsm_xsmp_client_set_property;
@@ -270,7 +305,7 @@
client_class->impl_save = xsmp_save;
client_class->impl_stop = xsmp_stop;
client_class->impl_query_end_session = xsmp_query_end_session;
-@@ -1012,6 +1034,17 @@ gsm_xsmp_client_class_init (GsmXSMPClien
+@@ -1012,6 +1038,17 @@ gsm_xsmp_client_class_init (GsmXSMPClien
G_TYPE_NONE,
1, G_TYPE_BOOLEAN);
@@ -427,21 +462,23 @@
Index: gnome-session-2.26.0.90/gnome-session/gsm-client.h
===================================================================
--- gnome-session-2.26.0.90.orig/gnome-session/gsm-client.h 2009-04-13 10:23:56.085980746 +0200
-+++ gnome-session-2.26.0.90/gnome-session/gsm-client.h 2009-04-13 10:32:21.757979490 +0200
-@@ -92,6 +92,8 @@ struct _GsmClientClass
++++ gnome-session-2.26.0.90/gnome-session/gsm-client.h 2009-04-13 15:52:13.745978035 +0200
+@@ -92,6 +92,9 @@ struct _GsmClientClass
GError **error);
gboolean (*impl_stop) (GsmClient *client,
GError **error);
+ gboolean (*impl_request_save) (GsmClient *client,
++ guint flags,
+ GError **error);
GKeyFile * (*impl_save) (GsmClient *client,
GError **error);
};
-@@ -137,6 +139,8 @@ gboolean gsm_client_cancel_
+@@ -137,6 +140,9 @@ gboolean gsm_client_cancel_
void gsm_client_disconnected (GsmClient *client);
+gboolean gsm_client_request_save (GsmClient *client,
++ guint flags,
+ GError **error);
GKeyFile *gsm_client_save (GsmClient *client,
GError **error);
@@ -449,13 +486,14 @@
Index: gnome-session-2.26.0.90/gnome-session/gsm-dbus-client.c
===================================================================
--- gnome-session-2.26.0.90.orig/gnome-session/gsm-dbus-client.c 2009-04-13 10:32:28.393980156 +0200
-+++ gnome-session-2.26.0.90/gnome-session/gsm-dbus-client.c 2009-04-13 10:35:28.633978465 +0200
-@@ -413,6 +413,18 @@ gsm_dbus_client_finalize (GObject *objec
++++ gnome-session-2.26.0.90/gnome-session/gsm-dbus-client.c 2009-04-13 15:53:12.573979150 +0200
+@@ -413,6 +413,19 @@ gsm_dbus_client_finalize (GObject *objec
G_OBJECT_CLASS (gsm_dbus_client_parent_class)->finalize (object);
}
+static gboolean
+dbus_client_request_save (GsmClient *client,
++ guint flags,
+ GError **error)
+{
+ g_debug ("GsmDBusClient: sending save request to client with id %s",
@@ -469,7 +507,7 @@
static GKeyFile *
dbus_client_save (GsmClient *client,
GError **error)
-@@ -665,6 +677,7 @@ gsm_dbus_client_class_init (GsmDBusClien
+@@ -665,6 +678,7 @@ gsm_dbus_client_class_init (GsmDBusClien
object_class->set_property = gsm_dbus_client_set_property;
object_class->dispose = gsm_dbus_client_dispose;
@@ -480,18 +518,19 @@
Index: gnome-session-2.26.0.90/gnome-session/gsm-client.c
===================================================================
--- gnome-session-2.26.0.90.orig/gnome-session/gsm-client.c 2009-04-13 10:23:55.981981355 +0200
-+++ gnome-session-2.26.0.90/gnome-session/gsm-client.c 2009-04-13 15:10:12.685978301 +0200
-@@ -510,6 +510,15 @@ gsm_client_disconnected (GsmClient *clie
++++ gnome-session-2.26.0.90/gnome-session/gsm-client.c 2009-04-13 15:52:36.933978536 +0200
+@@ -510,6 +510,16 @@ gsm_client_disconnected (GsmClient *clie
g_signal_emit (client, signals[DISCONNECTED], 0);
}
+gboolean
+gsm_client_request_save (GsmClient *client,
++ guint flags,
+ GError **error)
+{
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
+
-+ return GSM_CLIENT_GET_CLASS (client)->impl_request_save (client, error);
++ return GSM_CLIENT_GET_CLASS (client)->impl_request_save (client, flags, error);
+}
+
GKeyFile *
More information about the pkg-gnome-commits
mailing list