From: Alexander Larsson Date: Tue, 4 Feb 2020 13:08:10 +0000 (+0100) Subject: filechooser portal: Free portal proxy when bus connection closes X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~20^2~89^2~5 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=85e59220a5cf690a7e3a50cf2811bdd4b4848136;p=gtk4.git 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(). --- 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