From 82d4c8d6ed813f63b638d8fc2ae4c299bc592c32 Mon Sep 17 00:00:00 2001 From: Themba Dube Date: Sat, 14 Mar 2020 16:16:33 -0400 Subject: [PATCH] lv_bar: fix #1406 (animation issue) --- src/lv_widgets/lv_bar.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/lv_widgets/lv_bar.c b/src/lv_widgets/lv_bar.c index 498a0973f..1816e1a93 100644 --- a/src/lv_widgets/lv_bar.c +++ b/src/lv_widgets/lv_bar.c @@ -470,8 +470,7 @@ static void draw_indic(lv_obj_t * bar, const lv_area_t * clip_area) anim_start_value_x = (((anim_start_value_end_x - anim_start_value_start_x) * ext->start_value_anim.anim_state) / LV_BAR_ANIM_STATE_END); - if(anim_start_value_end_x < anim_start_value_start_x) - anim_start_value_x += anim_start_value_start_x; + anim_start_value_x += anim_start_value_start_x; } else #endif @@ -486,11 +485,8 @@ static void draw_indic(lv_obj_t * bar, const lv_area_t * clip_area) lv_coord_t anim_cur_value_end_x = (int32_t)((int32_t)anim_length * (ext->cur_value_anim.anim_end - ext->min_value)) / range; - anim_cur_value_x = (((anim_cur_value_end_x - anim_cur_value_start_x) * ext->cur_value_anim.anim_state) / + anim_cur_value_x = anim_cur_value_start_x + (((anim_cur_value_end_x - anim_cur_value_start_x) * ext->cur_value_anim.anim_state) / LV_BAR_ANIM_STATE_END); - - if(anim_cur_value_end_x < anim_cur_value_start_x) - anim_cur_value_x += anim_cur_value_start_x; } else #endif @@ -507,6 +503,7 @@ static void draw_indic(lv_obj_t * bar, const lv_area_t * clip_area) anim_cur_value_x = -anim_cur_value_x; anim_start_value_x = -anim_start_value_x; } + /* Set the indicator length */ if(hor) { *axis2 = *axis1 + anim_cur_value_x; @@ -729,8 +726,6 @@ static void lv_bar_set_value_with_anim(lv_obj_t * bar, int16_t new_value, int16_ lv_anim_set_ready_cb(&a, lv_bar_anim_ready); lv_anim_set_time(&a, ext->anim_time); lv_anim_start(&a); - - ext->cur_value = new_value; } }