[gnome-panel] panel: Fix an issue where autohide disabler was stuck



commit 3b0c5bd72f1ac009283f58019e559020415d17fb
Author: Vincent Untz <vuntz gnome org>
Date:   Tue Feb 22 22:24:52 2011 +0100

    panel: Fix an issue where autohide disabler was stuck
    
    This only happened when a popup menu was recreated while it was open.

 gnome-panel/applet.c            |    6 ++++++
 gnome-panel/panel-menu-button.c |    3 +++
 2 files changed, 9 insertions(+), 0 deletions(-)
---
diff --git a/gnome-panel/applet.c b/gnome-panel/applet.c
index 6320b99..8cb3bde 100644
--- a/gnome-panel/applet.c
+++ b/gnome-panel/applet.c
@@ -167,6 +167,9 @@ panel_applet_recreate_menu (AppletInfo *info)
 			menu->submenu = NULL;
 		}
 
+		if (gtk_widget_get_visible (info->menu))
+			gtk_menu_shell_deactivate (GTK_MENU_SHELL (info->menu));
+
 		g_signal_handlers_disconnect_by_func (info->menu,
 						      G_CALLBACK (applet_menu_show), info);
 		g_signal_handlers_disconnect_by_func (info->menu,
@@ -183,6 +186,9 @@ static void
 panel_applet_recreate_edit_menu (AppletInfo *info)
 {
 	if (info->edit_menu) {
+		if (gtk_widget_get_visible (info->edit_menu))
+			gtk_menu_shell_deactivate (GTK_MENU_SHELL (info->edit_menu));
+
 		g_signal_handlers_disconnect_by_func (info->edit_menu,
 						      G_CALLBACK (applet_menu_show), info);
 		g_signal_handlers_disconnect_by_func (info->edit_menu,
diff --git a/gnome-panel/panel-menu-button.c b/gnome-panel/panel-menu-button.c
index 27332e8..473814a 100644
--- a/gnome-panel/panel-menu-button.c
+++ b/gnome-panel/panel-menu-button.c
@@ -415,6 +415,9 @@ static void
 panel_menu_button_recreate_menu (PanelMenuButton *button)
 {
 	if (button->priv->menu) {
+		if (gtk_widget_get_visible (button->priv->menu))
+			gtk_menu_shell_deactivate (GTK_MENU_SHELL (button->priv->menu));
+
 		g_signal_handlers_disconnect_by_func (button->priv->menu,
 						      G_CALLBACK (panel_menu_button_menu_deactivated),
 						      button);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]