filechooserdialog: Fix disposing

We need to drop our widgetry in dispose to prevent
leakage.
This commit is contained in:
Matthias Clasen
2020-05-09 15:19:39 -04:00
parent 4b144855b9
commit 0ba1aad4e3

View File

@@ -221,6 +221,7 @@ struct _GtkFileChooserDialogPrivate
gboolean has_entry;
};
static void gtk_file_chooser_dialog_dispose (GObject *object);
static void gtk_file_chooser_dialog_set_property (GObject *object,
guint prop_id,
const GValue *value,
@@ -262,6 +263,7 @@ gtk_file_chooser_dialog_class_init (GtkFileChooserDialogClass *class)
GObjectClass *gobject_class = G_OBJECT_CLASS (class);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
gobject_class->dispose = gtk_file_chooser_dialog_dispose;
gobject_class->set_property = gtk_file_chooser_dialog_set_property;
gobject_class->get_property = gtk_file_chooser_dialog_get_property;
gobject_class->notify = gtk_file_chooser_dialog_notify;
@@ -387,6 +389,16 @@ file_chooser_widget_response_requested (GtkWidget *widget,
priv->response_requested = FALSE;
}
static void
gtk_file_chooser_dialog_dispose (GObject *object)
{
GtkFileChooserDialogPrivate *priv = gtk_file_chooser_dialog_get_instance_private (GTK_FILE_CHOOSER_DIALOG (object));
g_clear_pointer ((GtkWidget **)&priv->widget, gtk_widget_unparent);
G_OBJECT_CLASS (gtk_file_chooser_dialog_parent_class)->dispose (object);
}
static void
gtk_file_chooser_dialog_set_property (GObject *object,
guint prop_id,