fix a crash with the focused client closing during the delay of a submenu being shown (and add an assert for this too)
This commit is contained in:
parent
84cdb2be99
commit
040b451ed0
1 changed files with 8 additions and 1 deletions
|
@ -1075,10 +1075,16 @@ void menu_frame_hide_all_client(ObClient *client)
|
||||||
GList *it = g_list_last(menu_frame_visible);
|
GList *it = g_list_last(menu_frame_visible);
|
||||||
if (it) {
|
if (it) {
|
||||||
ObMenuFrame *f = it->data;
|
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);
|
menu_frame_hide(f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ObMenuFrame* menu_frame_under(gint x, gint y)
|
ObMenuFrame* menu_frame_under(gint x, gint y)
|
||||||
|
@ -1121,6 +1127,7 @@ ObMenuEntryFrame* menu_entry_frame_under(gint x, gint y)
|
||||||
|
|
||||||
static gboolean menu_entry_frame_submenu_timeout(gpointer data)
|
static gboolean menu_entry_frame_submenu_timeout(gpointer data)
|
||||||
{
|
{
|
||||||
|
g_assert(menu_frame_visible);
|
||||||
menu_entry_frame_show_submenu((ObMenuEntryFrame*)data);
|
menu_entry_frame_show_submenu((ObMenuEntryFrame*)data);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue