[gtk/better-test-isolation-2: 2/6] filechooser portal: Free portal proxy when bus connection closes



commit 85e59220a5cf690a7e3a50cf2811bdd4b4848136
Author: Alexander Larsson <alexl redhat com>
Date:   Tue Feb 4 14:08:10 2020 +0100

    filechooser portal: Free portal proxy when bus connection closes
    
    This was blocking the clean exit from the testdbus shutdown in
    the defaultvalues test. The proxy was keeping the connection alive
    which blocks g_test_dbus_down().

 gdk/filetransferportal.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
---
diff --git a/gdk/filetransferportal.c b/gdk/filetransferportal.c
index 541fd85a24..a658d086a8 100644
--- a/gdk/filetransferportal.c
+++ b/gdk/filetransferportal.c
@@ -471,6 +471,14 @@ portal_file_deserializer (GdkContentDeserializer *deserializer)
   g_object_unref (output);
 }
 
+static void
+connection_closed (GDBusConnection *connection,
+                   gboolean         remote_peer_vanished,
+                   GError          *error)
+{
+  g_clear_object (&file_transfer_proxy);
+}
+
 static void
 got_proxy (GObject *source,
            GAsyncResult *result,
@@ -509,6 +517,10 @@ got_proxy (GObject *source,
                                      portal_file_deserializer,
                                      NULL,
                                      NULL);
+
+  /* Free the singleton when the connection closes, important for test */
+  g_signal_connect (g_dbus_proxy_get_connection (G_DBUS_PROXY (file_transfer_proxy)),
+                    "closed", G_CALLBACK (connection_closed), NULL);
 }
 
 void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]