hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=74c60b7887bfb2b624becac879db68dc8323249e
commit 74c60b7887bfb2b624becac879db68dc8323249e Author: JunsuChoi <[email protected]> Date: Mon Dec 23 17:39:21 2019 +0900 Elm_Transit: Fix wrong intervention progress value Summary: If progress_value_set is called more than once, an error value occurs. The intervention progress must use progress that does not apply the previous intervention progress. Test Plan: meson_option.txt -> remove json in evas-loaders-disabler option elementary_test -to "animation view" Click Play -> Play back -> Play Reviewers: Hermet Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10907 --- src/lib/elementary/elm_transit.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_transit.c b/src/lib/elementary/elm_transit.c index 31c7961f50..39dc755604 100644 --- a/src/lib/elementary/elm_transit.c +++ b/src/lib/elementary/elm_transit.c @@ -61,6 +61,7 @@ struct _Elm_Transit } repeat; double progress; double inter_progress; + double base_progress; double revert_begin_progress; double revert_duration; double total_revert_time; @@ -359,6 +360,7 @@ _transit_animate_cb(void *data) } /* Intervention Progress */ + transit->base_progress = transit->progress; transit->progress += transit->inter_progress; switch (transit->tween_mode) @@ -956,7 +958,7 @@ elm_transit_progress_value_set(Elm_Transit *transit, double progress) if (progress < 0) progress = 0; else if (progress > 1) progress = 1; - transit->inter_progress = (progress - transit->progress); + transit->inter_progress = (progress - transit->base_progress); } EAPI double --
