From 85e59220a5cf690a7e3a50cf2811bdd4b4848136 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Tue, 4 Feb 2020 14:08:10 +0100 Subject: [PATCH] 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 -- 2.30.2