From b938e2b5d873a98bad608e6856417d0bbabbbfc3 Mon Sep 17 00:00:00 2001 From: Umesh Tanwar Date: Tue, 14 Mar 2017 14:24:16 +0530 Subject: [PATCH] ecore_animator: improve comparision check for stopping animator. Summary: Time cmparision does not ensure the corrctness of posotion. It is beacuse of double number calculation. Double number calculation are not convertable.for example: 1/39 = 0.02564102564; but 0.02564102564 * 39 = 0.99999999996 != 1; The addition check for pos ensure the pos to be reached at its correct position. @fix Signed-off-by: Umesh Tanwar Reviewers: cedric, singh.amitesh, jpeg, raster Reviewed By: raster Subscribers: atulfokk, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4709 Signed-off-by: Amitesh Singh --- src/lib/ecore/ecore_anim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ecore/ecore_anim.c b/src/lib/ecore/ecore_anim.c index 461d035152..84e31e1a40 100644 --- a/src/lib/ecore/ecore_anim.c +++ b/src/lib/ecore/ecore_anim.c @@ -983,7 +983,7 @@ _ecore_animator_run(void *data) pos = 0.0; } run_ret = animator->run_func(animator->run_data, pos); - if (t >= (animator->start + animator->run)) run_ret = EINA_FALSE; + if (t >= (animator->start + animator->run) && (pos >= 1.0)) run_ret = EINA_FALSE; return run_ret; }