[gnome-panel] panel: Fix an issue where autohide disabler was stuck
- From: Vincent Untz <vuntz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel] panel: Fix an issue where autohide disabler was stuck
- Date: Tue, 22 Feb 2011 22:21:22 +0000 (UTC)
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]