summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-05-05 18:19:00 +0000
committerMatthias Clasen <mclasen@redhat.com>2020-05-05 18:19:00 +0000
commitd2b55dff2db115c2a2c98607ffe64bea145bdbef (patch)
tree44771f9edec841f7af64e7024b5a339bf2b531a9
parent4cdb9ed32264922b1176eb53192f665c2777b5ce (diff)
parent7906f09c75c5b926429f3f027be179e66bfb11ad (diff)
downloadgtk+-d2b55dff2db115c2a2c98607ffe64bea145bdbef.tar.gz
Merge branch 'wip/exalm/controls-dispose' into 'master'
windowcontrols: Unparent children in dispose rather than finalize See merge request GNOME/gtk!1831
-rw-r--r--gtk/gtkwindowcontrols.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gtk/gtkwindowcontrols.c b/gtk/gtkwindowcontrols.c
index 8d6fce978f..78236cb43e 100644
--- a/gtk/gtkwindowcontrols.c
+++ b/gtk/gtkwindowcontrols.c
@@ -411,12 +411,20 @@ gtk_window_controls_unroot (GtkWidget *widget)
}
static void
-gtk_window_controls_finalize (GObject *object)
+gtk_window_controls_dispose (GObject *object)
{
GtkWindowControls *self = GTK_WINDOW_CONTROLS (object);
clear_controls (self);
+ G_OBJECT_CLASS (gtk_window_controls_parent_class)->dispose (object);
+}
+
+static void
+gtk_window_controls_finalize (GObject *object)
+{
+ GtkWindowControls *self = GTK_WINDOW_CONTROLS (object);
+
g_free (self->decoration_layout);
G_OBJECT_CLASS (gtk_window_controls_parent_class)->finalize (object);
@@ -480,6 +488,7 @@ gtk_window_controls_class_init (GtkWindowControlsClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+ object_class->dispose = gtk_window_controls_dispose;
object_class->finalize = gtk_window_controls_finalize;
object_class->get_property = gtk_window_controls_get_property;
object_class->set_property = gtk_window_controls_set_property;