summaryrefslogtreecommitdiff
path: root/0001-GtkApplication-Fix-CRITICAL-on-shutdown-when-registe.patch
blob: 55c3166b137b4b2eec8d4ae321520e6826b5be3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
From 3c7d5e749ccafa75718ef00f1d5f6cdc0defacb3 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Wed, 5 Sep 2018 21:46:28 +0200
Subject: [PATCH] GtkApplication: Fix CRITICAL on shutdown when
 register_session=FALSE

---
 gtk/gtkapplication-dbus.c | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/gtk/gtkapplication-dbus.c b/gtk/gtkapplication-dbus.c
index 25015eb68c..0946edf35c 100644
--- a/gtk/gtkapplication-dbus.c
+++ b/gtk/gtkapplication-dbus.c
@@ -826,15 +826,22 @@ gtk_application_impl_dbus_finalize (GObject *object)
 {
   GtkApplicationImplDBus *dbus = (GtkApplicationImplDBus *) object;
 
-  g_dbus_connection_call (dbus->session,
-                          "org.freedesktop.portal.Desktop",
-                          dbus->session_id,
-                          "org.freedesktop.portal.Session",
-                          "Close",
-                          NULL, NULL, 0, -1, NULL, NULL, NULL);
-
-  g_free (dbus->session_id);
-  g_dbus_connection_signal_unsubscribe (dbus->session, dbus->state_changed_handler);
+  if (dbus->session_id)
+    {
+      g_dbus_connection_call (dbus->session,
+                              "org.freedesktop.portal.Desktop",
+                              dbus->session_id,
+                              "org.freedesktop.portal.Session",
+                              "Close",
+                              NULL, NULL, 0, -1, NULL, NULL, NULL);
+
+      g_free (dbus->session_id);
+    }
+
+  if (dbus->state_changed_handler)
+    g_dbus_connection_signal_unsubscribe (dbus->session,
+                                          dbus->state_changed_handler);
+
   g_clear_object (&dbus->inhibit_proxy);
   g_slist_free_full (dbus->inhibit_handles, inhibit_handle_free);
   g_free (dbus->app_menu_path);
-- 
2.19.0.rc0

bgstack15