diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-07-21 23:56:26 -0400 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-07-21 23:56:26 -0400 |
| commit | 040b451ed0e2487031b15ca518ad4fdf9fefd559 (patch) | |
| tree | 54c3924e0ba02f796e334904393efedd3e4603f3 | |
| parent | 84cdb2be99b4e399f913b8557e8a84a0386a3ae1 (diff) | |
fix a crash with the focused client closing during the delay of a submenu being shown (and add an assert for this too)
| -rw-r--r-- | openbox/menuframe.c | 9 |
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; } |
