From 751bc99b982df37d2367782470fc160ea69e1add Mon Sep 17 00:00:00 2001 From: bjsylvia Date: Mon, 15 Jan 2024 18:38:13 +0800 Subject: [PATCH] fix(indev): use `lv_anim_delete` to delete scroll_throw_anim (#5324) Signed-off-by: YanXiaowei Co-authored-by: YanXiaowei --- src/indev/lv_indev.c | 3 +-- src/misc/lv_anim.c | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/indev/lv_indev.c b/src/indev/lv_indev.c index 4489f09e2..1685dc421 100644 --- a/src/indev/lv_indev.c +++ b/src/indev/lv_indev.c @@ -1564,9 +1564,8 @@ static void indev_scroll_throw_anim_cb(void * var, int32_t v) if(indev->pointer.scroll_dir == LV_DIR_NONE || indev->pointer.scroll_obj == NULL) { if(indev->scroll_throw_anim) { - /*hacky*/ LV_LOG_INFO("stop animation"); - lv_anim_set_duration(indev->scroll_throw_anim, 0); + lv_anim_delete(indev, indev_scroll_throw_anim_cb); } } } diff --git a/src/misc/lv_anim.c b/src/misc/lv_anim.c index a897b3d18..0f0031127 100644 --- a/src/misc/lv_anim.c +++ b/src/misc/lv_anim.c @@ -379,11 +379,11 @@ static void anim_timer(lv_timer_t * param) a->current_value = new_value; /*Apply the calculated value*/ if(a->exec_cb) a->exec_cb(a->var, new_value); - if(a->custom_exec_cb) a->custom_exec_cb(a, new_value); + if(!state.anim_list_changed && a->custom_exec_cb) a->custom_exec_cb(a, new_value); } /*If the time is elapsed the animation is ready*/ - if(a->act_time >= a->duration) { + if(!state.anim_list_changed && a->act_time >= a->duration) { anim_ready_handler(a); } }