summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOlivier Fourdan <fourdan@xfce.org>2010-12-03 11:14:02 +0100
committerOlivier Fourdan <fourdan@xfce.org>2010-12-03 11:14:02 +0100
commitdfd9b7860cc3d2d262b79577ba1924f1f9d7a29d (patch)
tree7542b1c0027fa98dc421318cdd5481ecc69c0fd9 /src
parent660246ce839c273ab62945eeeed4e3917b433aee (diff)
downloadxfwm4-dfd9b7860cc3d2d262b79577ba1924f1f9d7a29d.tar.gz
Fix hang when cancelling a submenu (bug #6562)
Diffstat (limited to 'src')
-rw-r--r--src/menu.c7
-rw-r--r--src/menu.h1
2 files changed, 3 insertions, 5 deletions
diff --git a/src/menu.c b/src/menu.c
index 2ad35698d..87aa96697 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -251,6 +251,7 @@ menu_default (GdkScreen *gscr, Window xid, MenuOp ops, MenuOp insensitive, MenuF
}
ws_menu = menu_workspace (menu, insensitive, ws, nws, wsn, wsn_items);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), ws_menu);
+ g_signal_connect (GTK_OBJECT (ws_menu), "selection-done", GTK_SIGNAL_FUNC (menu_closed), menu);
break;
default:
if (menuitems[i].image_name)
@@ -282,19 +283,17 @@ menu_default (GdkScreen *gscr, Window xid, MenuOp ops, MenuOp insensitive, MenuF
}
++i;
}
- menu_connect (menu);
+ g_signal_connect (GTK_OBJECT (menu->menu), "selection-done", GTK_SIGNAL_FUNC (menu), menu);
return (menu);
}
-Menu *
+static Menu *
menu_connect (Menu * menu)
{
TRACE ("entering menu_connect");
g_return_val_if_fail (menu != NULL, NULL);
g_return_val_if_fail (GTK_IS_MENU (menu->menu), NULL);
- g_signal_connect (GTK_OBJECT (menu->menu), "selection_done",
- GTK_SIGNAL_FUNC (menu_closed), menu);
return (menu);
}
diff --git a/src/menu.h b/src/menu.h
index 8aa175a5d..6c6b91d23 100644
--- a/src/menu.h
+++ b/src/menu.h
@@ -107,7 +107,6 @@ Menu *menu_default (GdkScreen *,
gint,
eventFilterSetup*,
gpointer);
-Menu *menu_connect (Menu *);
GtkWidget *menu_item_connect (GtkWidget *,
MenuData *);
gboolean menu_is_opened (void);