summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHermet Park <hermet@hermet.pe.kr>2016-12-07 14:17:33 +0900
committerHermet Park <hermet@hermet.pe.kr>2016-12-07 14:17:33 +0900
commit436e07277e1b24f5d5de5aece3e4d32d47c7d028 (patch)
tree9b7e6ac1eebcd7eb6f89a216733e01a57f18f919
parent825af0c89c25d0c0975f5b916a083f9e19b57f20 (diff)
downloadefl-436e07277e1b24f5d5de5aece3e4d32d47c7d028.tar.gz
elementary genlist: code refactoring.
removed duplicated logic and add a descriptive comment.
-rw-r--r--src/lib/elementary/elm_genlist.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 7e7a30c0c2..1d52f62315 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -6973,25 +6973,17 @@ _elm_genlist_item_coordinates_calc(Elm_Gen_Item *it,
Evas_Coord gith = 0;
ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
- if ((sd->queue) ||
- (!((sd->homogeneous) &&
- (sd->mode == ELM_LIST_COMPRESS))))
+ Eina_Bool deferred_show = EINA_FALSE;
+
+ //Can't goto the item right now. Reserve it instead.
+ if (sd->queue || !(sd->homogeneous && (sd->mode == ELM_LIST_COMPRESS)))
{
if ((it->item->queued) || (!it->item->mincalcd) || (sd->queue))
- {
- sd->check_scroll = EINA_TRUE;
- sd->show_item = it;
- sd->bring_in = bring_in;
- sd->scroll_to_type = type;
- it->item->show_me = EINA_TRUE;
-
- ecore_job_del(sd->calc_job);
- sd->calc_job = ecore_job_add(_calc_job, sd->obj);
-
- return EINA_FALSE;
- }
+ deferred_show = EINA_TRUE;
}
- if (it->item->block->w < 1)
+ else if (it->item->block->w < 1) deferred_show = EINA_TRUE;
+
+ if (deferred_show)
{
sd->check_scroll = EINA_TRUE;
sd->show_item = it;
@@ -7004,6 +6996,7 @@ _elm_genlist_item_coordinates_calc(Elm_Gen_Item *it,
return EINA_FALSE;
}
+
if (sd->show_item)
{
sd->show_item->item->show_me = EINA_FALSE;