[gtk+/gtk-3-20] gtkmenusectionbox: remove submenus when the parent item is removed
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-20] gtkmenusectionbox: remove submenus when the parent item is removed
- Date: Thu, 5 May 2016 19:20:03 +0000 (UTC)
commit 761f19e7d7b81dac63643628b8a1f7935d9f0342
Author: Jonathan Matthew <jonathan d14n org>
Date: Wed Mar 9 22:44:45 2016 +1000
gtkmenusectionbox: remove submenus when the parent item is removed
https://bugzilla.gnome.org/show_bug.cgi?id=749405
gtk/gtkmenusectionbox.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkmenusectionbox.c b/gtk/gtkmenusectionbox.c
index 2de27da..455637d 100644
--- a/gtk/gtkmenusectionbox.c
+++ b/gtk/gtkmenusectionbox.c
@@ -195,9 +195,25 @@ gtk_menu_section_box_remove_func (gint position,
gpointer user_data)
{
GtkMenuSectionBox *box = user_data;
+ GtkMenuTrackerItem *item;
+ GtkWidget *widget;
GList *children;
children = gtk_container_get_children (GTK_CONTAINER (box->item_box));
+
+ widget = g_list_nth_data (children, position);
+
+ item = g_object_get_data (G_OBJECT (widget), "GtkMenuTrackerItem");
+ if (gtk_menu_tracker_item_get_has_link (item, G_MENU_LINK_SUBMENU)) {
+ GtkWidget *stack, *subbox;
+
+ stack = gtk_widget_get_ancestor (GTK_WIDGET (box->toplevel), GTK_TYPE_STACK);
+ subbox = gtk_stack_get_child_by_name (GTK_STACK (stack), gtk_menu_tracker_item_get_label (item));
+ if (subbox != NULL) {
+ gtk_container_remove (GTK_CONTAINER (stack), subbox);
+ }
+ }
+
gtk_widget_destroy (g_list_nth_data (children, position));
g_list_free (children);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]