summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSangHyeon Lee <sh10233.lee@samsung.com>2016-04-19 18:41:43 +0900
committerSangHyeon Lee <sh10233.lee@samsung.com>2016-04-19 18:43:55 +0900
commit81f45c1b9072f5d84e82ff0428b7cbabe8ca657a (patch)
tree7c2e75f4b858f3074a4e71b4abc9b99d3a3ac499
parent45456d9e82ddc0e514a2b0003cbffa259e9eb9b1 (diff)
downloadefl-81f45c1b9072f5d84e82ff0428b7cbabe8ca657a.tar.gz
genlist: call update_job after smart_calculation done
Summary : if item_update happens before the smart calcuate finished, item can be delayed updated(next frame). to prevent this issue, if unsolved job is remaining after smart calc done, call update_job directly and remove job. @fix
-rw-r--r--src/lib/elementary/elm_genlist.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index eccb493e81..430c10a2c1 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -150,6 +150,7 @@ static Eina_Bool _key_action_move(Evas_Object *obj, const char *params);
static Eina_Bool _key_action_select(Evas_Object *obj, const char *params);
static Eina_Bool _key_action_escape(Evas_Object *obj, const char *params);
static void _calc_job(void *data);
+static void _update_job(void *data);
static Eina_Bool _item_block_recalc(Item_Block *itb, int in, Eina_Bool qadd);
static void _item_mouse_callbacks_add(Elm_Gen_Item *it, Evas_Object *view);
static void _item_mouse_callbacks_del(Elm_Gen_Item *it, Evas_Object *view);
@@ -2538,6 +2539,13 @@ _elm_genlist_pan_evas_object_smart_calculate(Eo *obj, Elm_Genlist_Pan_Data *psd)
if (git->realized) evas_object_raise(VIEW(git));
}
+ //update item before the render to prevent delayed update by job.
+ if (sd->update_job)
+ {
+ ELM_SAFE_FREE(sd->update_job, ecore_job_del);
+ _update_job(sd->obj);
+ }
+
evas_event_thaw(evas_object_evas_get(obj));
evas_event_thaw_eval(evas_object_evas_get(obj));