File gnome-session-exit-when-lost-name-on-bus.patch of Package gnome-session.19079
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
index 6839a02d..67b09d8a 100644
--- a/gnome-session/gsm-manager.c
+++ b/gnome-session/gsm-manager.c
@@ -1802,6 +1802,14 @@ gsm_manager_set_failsafe (GsmManager *manager,
manager->priv->failsafe = enabled;
}
+gboolean
+gsm_manager_get_dbus_disconnected (GsmManager *manager)
+{
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
+
+ return manager->priv->dbus_disconnected;
+}
+
gboolean
gsm_manager_get_failsafe (GsmManager *manager)
{
diff --git a/gnome-session/main.c b/gnome-session/main.c
index 01f56667..51ea6975 100644
--- a/gnome-session/main.c
+++ b/gnome-session/main.c
@@ -83,8 +83,12 @@ on_name_lost (GDBusConnection *connection,
gpointer data)
{
if (connection == NULL) {
- g_warning ("Lost name on bus: %s", name);
- gsm_fail_whale_dialog_we_failed (TRUE, TRUE, NULL);
+ if (gsm_manager_get_dbus_disconnected (manager))
+ gsm_quit ();
+ else {
+ g_warning ("Lost name on bus: %s", name);
+ gsm_fail_whale_dialog_we_failed (TRUE, TRUE, NULL);
+ }
} else {
g_debug ("Calling name lost callback function");