diff options
| author | Matthias Clasen <mclasen@redhat.com> | 2020-05-05 18:19:00 +0000 |
|---|---|---|
| committer | Matthias Clasen <mclasen@redhat.com> | 2020-05-05 18:19:00 +0000 |
| commit | d2b55dff2db115c2a2c98607ffe64bea145bdbef (patch) | |
| tree | 44771f9edec841f7af64e7024b5a339bf2b531a9 | |
| parent | 4cdb9ed32264922b1176eb53192f665c2777b5ce (diff) | |
| parent | 7906f09c75c5b926429f3f027be179e66bfb11ad (diff) | |
| download | gtk+-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.c | 11 |
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; |
