From 160ea46dba935541ad6490635394ddd888cbfbd7 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Mon, 29 Jan 2007 15:45:18 +0000 Subject: [PATCH] queue a draw on the parent_menu_item of this menu item's menu, to enable 2007-01-29 Michael Natterer * gtk/gtkmenuitem.c (gtk_menu_item_select) (gtk_menu_item_deselect): queue a draw on the parent_menu_item of this menu item's menu, to enable themeing menu items depending on whether something is selected in their submenu (patch taken from maemo-gtk). svn path=/trunk/; revision=17234 --- ChangeLog | 8 ++++++++ gtk/gtkmenuitem.c | 26 ++++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index a8809cf8cc..1bd63a8173 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-01-29 Michael Natterer + + * gtk/gtkmenuitem.c (gtk_menu_item_select) + (gtk_menu_item_deselect): queue a draw on the parent_menu_item of + this menu item's menu, to enable themeing menu items depending on + whether something is selected in their submenu (patch taken from + maemo-gtk). + 2007-01-28 Matthias Clasen * gtk/gtktoolbar.c: Reinstate gtk_toolbar_content_new_compatibility() diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c index 35e5bff58a..03855d6999 100644 --- a/gtk/gtkmenuitem.c +++ b/gtk/gtkmenuitem.c @@ -385,16 +385,38 @@ void gtk_menu_item_select (GtkMenuItem *menu_item) { g_return_if_fail (GTK_IS_MENU_ITEM (menu_item)); - + gtk_item_select (GTK_ITEM (menu_item)); + + /* Enable themeing of the parent menu item depending on whether + * something is selected in its submenu + */ + if (GTK_IS_MENU (GTK_WIDGET (menu_item)->parent)) + { + GtkMenu *menu = GTK_MENU (GTK_WIDGET (menu_item)->parent); + + if (menu->parent_menu_item) + gtk_widget_queue_draw (GTK_WIDGET (menu->parent_menu_item)); + } } void gtk_menu_item_deselect (GtkMenuItem *menu_item) { g_return_if_fail (GTK_IS_MENU_ITEM (menu_item)); - + gtk_item_deselect (GTK_ITEM (menu_item)); + + /* Enable themeing of the parent menu item depending on whether + * something is selected in its submenu + */ + if (GTK_IS_MENU (GTK_WIDGET (menu_item)->parent)) + { + GtkMenu *menu = GTK_MENU (GTK_WIDGET (menu_item)->parent); + + if (menu->parent_menu_item) + gtk_widget_queue_draw (GTK_WIDGET (menu->parent_menu_item)); + } } void