diff options
author | SangHyeon Lee <sh10233.lee@samsung.com> | 2016-04-19 18:41:43 +0900 |
---|---|---|
committer | SangHyeon Lee <sh10233.lee@samsung.com> | 2016-04-19 18:43:55 +0900 |
commit | 81f45c1b9072f5d84e82ff0428b7cbabe8ca657a (patch) | |
tree | 7c2e75f4b858f3074a4e71b4abc9b99d3a3ac499 | |
parent | 45456d9e82ddc0e514a2b0003cbffa259e9eb9b1 (diff) | |
download | efl-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.c | 8 |
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)); |