summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaoguang Wang <xwang@suse.com>2022-02-21 10:52:10 +0800
committerRay Strode <halfline@gmail.com>2023-03-05 15:57:25 +0000
commit4c8574405e9a9300fa854af6793a491862042d12 (patch)
treecc0fa8a49a8e9ddd52ed2b6e6f28d4c59934baf5
parent8867860f72368eaa6d1934bd912a0e3a34b0e7c6 (diff)
downloadgnome-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.c10
-rw-r--r--gnome-session/main.c8
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");