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().
This commit is contained in:
Alexander Larsson 2020-02-04 14:08:10 +01:00
parent a3be0ec5f0
commit 85e59220a5

View File

@ -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