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

-- 


Reply via email to