diff options
author | Xiaoguang Wang <xwang@suse.com> | 2022-02-21 10:52:10 +0800 |
---|---|---|
committer | Ray Strode <halfline@gmail.com> | 2023-03-05 15:57:25 +0000 |
commit | 4c8574405e9a9300fa854af6793a491862042d12 (patch) | |
tree | cc0fa8a49a8e9ddd52ed2b6e6f28d4c59934baf5 | |
parent | 8867860f72368eaa6d1934bd912a0e3a34b0e7c6 (diff) | |
download | gnome-session-4c8574405e9a9300fa854af6793a491862042d12.tar.gz |
main: Exit gnome-session immediately when lost name on bus
The "WARNING: Lost name on bus" happens every time when user logs out,
no need to show the "Oops, something went wrong." dialog.
https://gitlab.gnome.org/GNOME/gnome-session/-/issues/73
-rw-r--r-- | gnome-session/gsm-manager.c | 10 | ||||
-rw-r--r-- | gnome-session/main.c | 8 |
2 files changed, 16 insertions, 2 deletions
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c index 1b88b266..05e0d8d5 100644 --- a/gnome-session/gsm-manager.c +++ b/gnome-session/gsm-manager.c @@ -1850,6 +1850,16 @@ gsm_manager_set_failsafe (GsmManager *manager, } gboolean +gsm_manager_get_dbus_disconnected (GsmManager *manager) +{ + GsmManagerPrivate *priv = gsm_manager_get_instance_private (manager); + + g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE); + + return priv->dbus_disconnected; +} + +gboolean gsm_manager_get_failsafe (GsmManager *manager) { GsmManagerPrivate *priv = gsm_manager_get_instance_private (manager); diff --git a/gnome-session/main.c b/gnome-session/main.c index 6f033246..3ae85225 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"); |