summaryrefslogtreecommitdiff
path: root/gtk/gtkshortcutssection.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2015-11-23 19:48:50 -0500
committerMatthias Clasen <mclasen@redhat.com>2015-11-23 19:48:50 -0500
commit3b0ceea08be3dfecb2bf32296c98b848feaa2948 (patch)
tree67e696a3adeb52ec19e8bf34d1bb56e7af760e12 /gtk/gtkshortcutssection.c
parent0ed61a048060a69be986de51b730fde8f845eadd (diff)
downloadgtk+-3b0ceea08be3dfecb2bf32296c98b848feaa2948.tar.gz
shortcuts section: Fix destroy
The container destroy implementation does not quite work here, so do our own.
Diffstat (limited to 'gtk/gtkshortcutssection.c')
-rw-r--r--gtk/gtkshortcutssection.c24
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;