diff options
author | Matthias Clasen <mclasen@redhat.com> | 2015-11-23 19:48:50 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2015-11-23 19:48:50 -0500 |
commit | 3b0ceea08be3dfecb2bf32296c98b848feaa2948 (patch) | |
tree | 67e696a3adeb52ec19e8bf34d1bb56e7af760e12 | |
parent | 0ed61a048060a69be986de51b730fde8f845eadd (diff) | |
download | gtk+-3b0ceea08be3dfecb2bf32296c98b848feaa2948.tar.gz |
shortcuts section: Fix destroy
The container destroy implementation does not quite work here,
so do our own.
-rw-r--r-- | gtk/gtkshortcutssection.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gtk/gtkshortcutssection.c b/gtk/gtkshortcutssection.c index 3bdf0966ef..03dac89ff0 100644 --- a/gtk/gtkshortcutssection.c +++ b/gtk/gtkshortcutssection.c @@ -209,6 +209,29 @@ gtk_shortcuts_section_unmap (GtkWidget *widget) } static void +gtk_shortcuts_section_destroy (GtkWidget *widget) +{ + GtkShortcutsSection *self = GTK_SHORTCUTS_SECTION (widget); + + if (self->stack) + { + gtk_widget_destroy (GTK_WIDGET (self->stack)); + self->stack = NULL; + } + + if (self->footer) + { + gtk_widget_destroy (GTK_WIDGET (self->footer)); + self->footer = NULL; + } + + g_list_free (self->groups); + self->groups = NULL; + + GTK_WIDGET_CLASS (gtk_shortcuts_section_parent_class)->destroy (widget); +} + +static void gtk_shortcuts_section_finalize (GObject *object) { GtkShortcutsSection *self = (GtkShortcutsSection *)object; @@ -304,6 +327,7 @@ gtk_shortcuts_section_class_init (GtkShortcutsSectionClass *klass) widget_class->map = gtk_shortcuts_section_map; widget_class->unmap = gtk_shortcuts_section_unmap; + widget_class->destroy = gtk_shortcuts_section_destroy; container_class->add = gtk_shortcuts_section_add; container_class->remove = gtk_shortcuts_section_remove; |