forked from enlightenment/enlightenment
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:
parent
008a3a8152
commit
5764bf680e
|
@ -182,10 +182,10 @@ e_menu_shutdown(void)
|
||||||
E_API void
|
E_API void
|
||||||
e_menu_hide_all(void)
|
e_menu_hide_all(void)
|
||||||
{
|
{
|
||||||
E_Menu *m;
|
while (_e_active_menus)
|
||||||
|
|
||||||
EINA_LIST_FREE(_e_active_menus, m)
|
|
||||||
{
|
{
|
||||||
|
E_Menu *m;
|
||||||
|
m = eina_list_data_get(_e_active_menus);
|
||||||
if (m->post_deactivate_cb.func)
|
if (m->post_deactivate_cb.func)
|
||||||
m->post_deactivate_cb.func(m->post_deactivate_cb.data, m);
|
m->post_deactivate_cb.func(m->post_deactivate_cb.data, m);
|
||||||
m->active = 0;
|
m->active = 0;
|
||||||
|
@ -193,6 +193,7 @@ e_menu_hide_all(void)
|
||||||
e_comp_object_util_autoclose(NULL, NULL, NULL, NULL);
|
e_comp_object_util_autoclose(NULL, NULL, NULL, NULL);
|
||||||
_e_menu_unrealize(m);
|
_e_menu_unrealize(m);
|
||||||
m->in_active_list = 0;
|
m->in_active_list = 0;
|
||||||
|
_e_active_menus = eina_list_remove_list(_e_active_menus, _e_active_menus);
|
||||||
e_object_unref(E_OBJECT(m));
|
e_object_unref(E_OBJECT(m));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue