From 933d2829aca8bc269c0b481f2a535274626374bc Mon Sep 17 00:00:00 2001 From: Gabor Kiss-Vamosi Date: Fri, 16 Jul 2021 12:16:10 +0200 Subject: [PATCH] fix(tabview) send LV_EVENT_VALUE_CHANGED only once Fixes #2377 --- src/extra/widgets/tabview/lv_tabview.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/extra/widgets/tabview/lv_tabview.c b/src/extra/widgets/tabview/lv_tabview.c index 6e2a18d1e..1fff72625 100644 --- a/src/extra/widgets/tabview/lv_tabview.c +++ b/src/extra/widgets/tabview/lv_tabview.c @@ -271,8 +271,6 @@ static void btns_value_changed_event_cb(lv_event_t * e) lv_obj_t * tv = lv_obj_get_parent(btns); uint32_t id = lv_btnmatrix_get_selected_btn(btns); lv_tabview_set_act(tv, id, LV_ANIM_ON); - - lv_event_send(tv, LV_EVENT_VALUE_CHANGED, NULL); } static void cont_scroll_end_event_cb(lv_event_t * e) @@ -295,8 +293,11 @@ static void cont_scroll_end_event_cb(lv_event_t * e) else t = (p.x + w/ 2) / w; if(t < 0) t = 0; + bool new_tab = false; + if(t != lv_tabview_get_tab_act(tv)) new_tab = true; lv_tabview_set_act(tv, t, LV_ANIM_ON); - lv_event_send(tv, LV_EVENT_VALUE_CHANGED, NULL); + + if(new_tab) lv_event_send(tv, LV_EVENT_VALUE_CHANGED, NULL); } } #endif /*LV_USE_TABVIEW*/