summaryrefslogtreecommitdiff
path: root/openbox/menuframe.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-07-21 23:56:26 -0400
committerDana Jansens <danakj@orodu.net>2007-07-21 23:56:26 -0400
commit040b451ed0e2487031b15ca518ad4fdf9fefd559 (patch)
tree54c3924e0ba02f796e334904393efedd3e4603f3 /openbox/menuframe.c
parent84cdb2be99b4e399f913b8557e8a84a0386a3ae1 (diff)
fix a crash with the focused client closing during the delay of a submenu being shown (and add an assert for this too)
Diffstat (limited to 'openbox/menuframe.c')
-rw-r--r--openbox/menuframe.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/openbox/menuframe.c b/openbox/menuframe.c
index d2f513c4..2c666e3f 100644
--- a/openbox/menuframe.c
+++ b/openbox/menuframe.c
@@ -1075,8 +1075,14 @@ void menu_frame_hide_all_client(ObClient *client)
GList *it = g_list_last(menu_frame_visible);
if (it) {
ObMenuFrame *f = it->data;
- if (f->client == client)
+ if (f->client == client) {
+ if (config_submenu_show_delay) {
+ /* remove any submenu open requests */
+ ob_main_loop_timeout_remove(ob_main_loop,
+ menu_entry_frame_submenu_timeout);
+ }
menu_frame_hide(f);
+ }
}
}
@@ -1121,6 +1127,7 @@ ObMenuEntryFrame* menu_entry_frame_under(gint x, gint y)
static gboolean menu_entry_frame_submenu_timeout(gpointer data)
{
+ g_assert(menu_frame_visible);
menu_entry_frame_show_submenu((ObMenuEntryFrame*)data);
return FALSE;
}