system/remote-desktop: Initialize GCancellable and cancel it page dispose

Fixes #2733
This commit is contained in:
Felipe Borges 2023-11-07 12:17:46 +01:00
parent 1182323e6d
commit 91057652d4

View file

@ -707,10 +707,27 @@ sharing_proxy_ready (GObject *source,
cc_remote_desktop_page_setup_label_with_hostname (self, self->remote_desktop_address_label);
}
static void
cc_remote_desktop_page_dispose (GObject *object)
{
CcRemoteDesktopPage *self = (CcRemoteDesktopPage *)object;
g_cancellable_cancel (self->cancellable);
g_clear_object (&self->cancellable);
g_clear_handle_id (&self->remote_desktop_store_credentials_id, g_source_remove);
self->remote_desktop_store_credentials_id = 0;
G_OBJECT_CLASS (cc_remote_desktop_page_parent_class)->dispose (object);
}
static void
cc_remote_desktop_page_class_init (CcRemoteDesktopPageClass * klass)
{
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->dispose = cc_remote_desktop_page_dispose;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/system/remote-desktop/cc-remote-desktop-page.ui");
@ -741,6 +758,7 @@ cc_remote_desktop_page_init (CcRemoteDesktopPage *self)
gtk_widget_init_template (GTK_WIDGET (self));
self->cancellable = g_cancellable_new ();
gsd_sharing_proxy_new_for_bus (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_NONE,
"org.gnome.SettingsDaemon.Sharing",