- better cleanups

SVN revision: 18914
This commit is contained in:
codewarrior 2005-12-08 13:03:06 +00:00 committed by codewarrior
parent 3be597c032
commit f4ca9e33b0
2 changed files with 35 additions and 11 deletions

View File

@ -1768,9 +1768,13 @@ _e_fm_dir_monitor_cb(void *data, Ecore_File_Monitor *ecore_file_monitor,
static void
_e_fm_file_free(E_Fm_Icon *icon)
{
e_icon_canvas_unpack(icon->icon_obj);
evas_object_del(icon->icon_obj);
e_object_del(E_OBJECT(icon->file));
if(icon->icon_obj)
{
e_icon_canvas_unpack(icon->icon_obj);
evas_object_del(icon->icon_obj);
}
if(icon->file)
e_object_del(E_OBJECT(icon->file));
/*
if (file->menu)
e_object_del(E_OBJECT(file->menu));

View File

@ -334,6 +334,7 @@ void
e_icon_canvas_reset(Evas_Object *obj)
{
E_Smart_Data *sd;
int i, j;
if ((!obj) || !(sd = evas_object_smart_data_get(obj)))
return;
@ -343,15 +344,34 @@ e_icon_canvas_reset(Evas_Object *obj)
sd->mw = 0;
sd->mh = 0;
#if 0
while (sd->items)
{
Evas_Object *child;
child = sd->items->data;
e_icon_canvas_unpack(child);
}
#endif
{
E_Icon_Canvas_Item *li;
li = sd->items->data;
if(li->obj)
e_icon_canvas_unpack(li->obj);
else
sd->items = evas_list_remove(sd->items, li);
//free(li);
}
for(i = 0; i < TILE_NUM; i++)
{
for(j = 0; j < TILE_NUM; j++)
{
if(sd->tiles[i][j])
{
E_Icon_Canvas_Tile *t;
t = sd->tiles[i][j];
while(t->items)
t->items = evas_list_remove(t->items, t->items->data);
free(sd->tiles[i][j]);
sd->tiles[i][j] = NULL;
}
}
}
}
void