Make sure loop quits.

SVN revision: 13391
This commit is contained in:
sebastid 2005-02-16 11:23:56 +00:00 committed by sebastid
parent 4e8281f220
commit e0f1105b32
1 changed files with 18 additions and 10 deletions

View File

@ -394,11 +394,22 @@ e_container_shape_rects_get(E_Container_Shape *es)
static void
_e_container_free(E_Container *con)
{
Evas_List *l, *tmp;
if (con->gadman) e_object_del(E_OBJECT(con->gadman));
/* We can't use e_object_del here, because border adds a ref to itself
* when it is removed, and the ref is never unref'ed */
while (con->clients) e_object_free(E_OBJECT(con->clients->data));
while (con->zones) e_object_del(E_OBJECT(con->zones->data));
for (l = con->clients; l;)
{
tmp = l;
l = l->next;
e_object_free(E_OBJECT(tmp->data));
}
for (l = con->zones; l;)
{
tmp = l;
l = l->next;
e_object_del(E_OBJECT(tmp->data));
}
con->manager->containers = evas_list_remove(con->manager->containers, con);
e_canvas_del(con->bg_ecore_evas);
ecore_evas_free(con->bg_ecore_evas);
@ -430,15 +441,12 @@ _e_container_shape_del(E_Container_Shape *es)
static void
_e_container_shape_free(E_Container_Shape *es)
{
Evas_List *l;
es->con->shapes = evas_list_remove(es->con->shapes, es);
while (es->shape)
{
E_Rect *r;
r = es->shape->data;
es->shape = evas_list_remove_list(es->shape, es->shape);
free(r);
}
for (l = es->shape; l; l = l->next)
free(l->data);
evas_list_free(es->shape);
free(es);
}