diff options
author | JunsuChoi <jsuya.choi@samsung.com> | 2020-01-07 15:52:06 +0900 |
---|---|---|
committer | Hermet Park <hermetpark@gmail.com> | 2020-01-07 15:52:06 +0900 |
commit | 5196484832716a8fdd566e132bfdb5f9247078f3 (patch) | |
tree | a9f431827a2d82b548e0bb150c905b68999d113c | |
parent | 0313104719992737ac5783714bd9988e2c363ca4 (diff) | |
download | efl-5196484832716a8fdd566e132bfdb5f9247078f3.tar.gz |
Efl.Ui.Vg_Animation: Fix state when changed speed
Summary: If speed's direction changed, change state.
Test Plan: N/A
Reviewers: Hermet, kimcinoo, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11021
-rw-r--r-- | src/lib/elementary/efl_ui_vg_animation.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/lib/elementary/efl_ui_vg_animation.c b/src/lib/elementary/efl_ui_vg_animation.c index 72d54cdcad..8e4339b760 100644 --- a/src/lib/elementary/efl_ui_vg_animation.c +++ b/src/lib/elementary/efl_ui_vg_animation.c @@ -780,11 +780,22 @@ _efl_ui_vg_animation_efl_player_playback_progress_set(Eo *obj EINA_UNUSED, Efl_U EOLIAN static void _efl_ui_vg_animation_efl_player_playback_speed_set(Eo *obj EINA_UNUSED, Efl_Ui_Vg_Animation_Data *pd, double speed) { + Eina_Bool rewind = EINA_FALSE; + + if ((pd->playback_speed > 0 && speed < 0) || (pd->playback_speed < 0 && speed > 0)) + rewind = EINA_TRUE; + // pd->playback_direction_changed is used only during playback. - if ((pd->state == EFL_UI_VG_ANIMATION_STATE_PLAYING || - pd->state == EFL_UI_VG_ANIMATION_STATE_PLAYING_BACKWARDS) - && ((pd->playback_speed > 0 && speed < 0) || (pd->playback_speed < 0 && speed > 0))) - pd->playback_direction_changed = EINA_TRUE; + if (pd->state == EFL_UI_VG_ANIMATION_STATE_PLAYING && rewind) + { + pd->state = EFL_UI_VG_ANIMATION_STATE_PLAYING_BACKWARDS; + pd->playback_direction_changed = EINA_TRUE; + } + else if (pd->state == EFL_UI_VG_ANIMATION_STATE_PLAYING_BACKWARDS && rewind) + { + pd->state = EFL_UI_VG_ANIMATION_STATE_PLAYING; + pd->playback_direction_changed = EINA_TRUE; + } pd->playback_speed = speed; speed = speed < 0 ? speed * -1 : speed; |