handle recursion more effectively in e_menu_hide_all()

there were recent changes to evas object deletion mechanics which caused
this to begin crashing due to recent changes to evas object deletion mechanics
This commit is contained in:
Mike Blumenkrantz 2016-04-26 10:41:00 -04:00
parent 008a3a8152
commit 5764bf680e
Notes: Mike Blumenkrantz 2016-05-12 12:32:26 -04:00
last backport before 20.7
1 changed files with 4 additions and 3 deletions

View File

@ -182,10 +182,10 @@ e_menu_shutdown(void)
E_API void
e_menu_hide_all(void)
{
E_Menu *m;
EINA_LIST_FREE(_e_active_menus, m)
while (_e_active_menus)
{
E_Menu *m;
m = eina_list_data_get(_e_active_menus);
if (m->post_deactivate_cb.func)
m->post_deactivate_cb.func(m->post_deactivate_cb.data, m);
m->active = 0;
@ -193,6 +193,7 @@ e_menu_hide_all(void)
e_comp_object_util_autoclose(NULL, NULL, NULL, NULL);
_e_menu_unrealize(m);
m->in_active_list = 0;
_e_active_menus = eina_list_remove_list(_e_active_menus, _e_active_menus);
e_object_unref(E_OBJECT(m));
}
}