'everything' view: less blocking, cleanups

SVN revision: 47390
This commit is contained in:
Hannes Janetzek 2010-03-23 12:39:35 +00:00
parent 3f5b3edded
commit 22d6a15d3b
1 changed files with 30 additions and 53 deletions

View File

@ -98,7 +98,6 @@ _thumb_idler(void *data)
Smart_Data *sd = data;
Eina_List *l, *ll;
Item *it;
int cnt = 0;
EINA_LIST_FOREACH_SAFE(sd->queue, l, ll, it)
{
@ -135,13 +134,7 @@ _thumb_idler(void *data)
sd->queue = eina_list_remove_list(sd->queue, l);
cnt++;
if (cnt > 2)
{
e_util_wakeup();
return 1;
}
return 1;
}
sd->thumb_idler = NULL;
@ -598,32 +591,47 @@ _pan_item_select(Evas_Object *obj, Item *it)
}
static void
_view_clear(Evry_View *view)
_clear_items(Evas_Object *obj)
{
View *v = (View*) view;
Smart_Data *sd = evas_object_smart_data_get(v->span);
Smart_Data *sd = evas_object_smart_data_get(obj);
Eina_List *l;
Item *it;
EINA_LIST_FREE(sd->items, it)
EINA_LIST_FOREACH(sd->items, l, it)
{
if (it->do_thumb) e_thumb_icon_end(it->thumb);
if (it->thumb) evas_object_del(it->thumb);
if (it->frame) evas_object_del(it->frame);
if (it->image) evas_object_del(it->image);
evry_item_free(it->item);
E_FREE(it);
if (it->do_thumb)
e_thumb_icon_end(it->thumb);
if (it->frame) evas_object_del(it->frame);
if (it->image) evas_object_del(it->image);
if (it->thumb) evas_object_del(it->thumb);
it->frame = NULL;
it->image = NULL;
it->thumb = NULL;
it->have_thumb = EINA_FALSE;
it->do_thumb = EINA_FALSE;
it->visible = EINA_FALSE;
}
if (sd->idle_enter) ecore_idle_enterer_del(sd->idle_enter);
sd->idle_enter = ecore_idle_enterer_before_add(_e_smart_reconfigure_do, v->span);
if (sd->queue)
eina_list_free(sd->queue);
sd->queue = NULL;
if (sd->thumb_idler)
ecore_idle_enterer_del(sd->thumb_idler);
sd->thumb_idler = NULL;
sd->thumb_idler = NULL;
}
static void
_view_clear(Evry_View *view)
{
View *v = (View*) view;
Smart_Data *sd = evas_object_smart_data_get(v->span);
Item *it;
_clear_items(v->span);
if (sd->idle_enter) ecore_idle_enterer_del(sd->idle_enter);
sd->idle_enter = ecore_idle_enterer_before_add(_e_smart_reconfigure_do, v->span);
v->tabs->clear(v->tabs);
}
@ -776,37 +784,6 @@ _view_update(Evry_View *view)
return 0;
}
static void
_clear_items(Evas_Object *obj)
{
Smart_Data *sd = evas_object_smart_data_get(obj);
Eina_List *l;
Item *it;
EINA_LIST_FOREACH(sd->items, l, it)
{
if (it->do_thumb)
e_thumb_icon_end(it->thumb);
if (it->frame) evas_object_del(it->frame);
if (it->image) evas_object_del(it->image);
if (it->thumb) evas_object_del(it->thumb);
it->frame = NULL;
it->image = NULL;
it->thumb = NULL;
it->have_thumb = EINA_FALSE;
it->do_thumb = EINA_FALSE;
it->visible = EINA_FALSE;
}
if (sd->queue)
eina_list_free(sd->queue);
sd->queue = NULL;
if (sd->thumb_idler)
ecore_idle_enterer_del(sd->thumb_idler);
sd->thumb_idler = NULL;
}
static int
_cb_key_down(Evry_View *view, const Ecore_Event_Key *ev)
{