summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Hacohen <tom@stosb.com>2014-09-26 10:09:15 +0100
committerTom Hacohen <tom@stosb.com>2014-09-26 10:10:51 +0100
commitc15f16c9c8559d1dc966bff66403fdf3db84c10c (patch)
treee1f778c3a61441416dda9ca079b9333feb48991f /src
parentdc1382b9d0c32cc64d6de6266244889578eb13bd (diff)
Elm win: fix wrong deletion of elm windows.
This is a fix upon 6e7686c030fab162edb3128de005ec00ea8c0ffc. This correctly deletes the list even if the windows are still referenced and even if they are deleted from under out feets.
Diffstat (limited to 'src')
-rw-r--r--src/lib/elm_win.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index 1e6b9985e..ed6a2e71f 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -2105,10 +2105,15 @@ _elm_win_on_resize_obj_changed_size_hints(void *data,
2105void 2105void
2106_elm_win_shutdown(void) 2106_elm_win_shutdown(void)
2107{ 2107{
2108 Eina_List *itr, *itrn; 2108 while (_elm_win_list)
2109 Evas_Object *obj; 2109 {
2110 EINA_LIST_FOREACH_SAFE(_elm_win_list, itr, itrn, obj) 2110 Eina_List *itr = _elm_win_list;
2111 evas_object_del(obj); 2111 evas_object_del(itr->data);
2112 if (_elm_win_list == itr)
2113 {
2114 _elm_win_list = eina_list_remove_list(_elm_win_list, _elm_win_list);
2115 }
2116 }
2112 ELM_SAFE_FREE(_elm_win_state_eval_job, ecore_job_del); 2117 ELM_SAFE_FREE(_elm_win_state_eval_job, ecore_job_del);
2113} 2118}
2114 2119