From 7182aa2560e498c087982a63711090ac354d88c6 Mon Sep 17 00:00:00 2001 From: qinshijing <51692568+qinshijing@users.noreply.github.com> Date: Sun, 17 Mar 2024 20:19:13 +0800 Subject: [PATCH] fix(indev): Fix scroll obj cannot be cleared when waiting until release (#5833) Signed-off-by: qinshijing Co-authored-by: qinshijing --- src/indev/lv_indev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/indev/lv_indev.c b/src/indev/lv_indev.c index 445b67532..3169dd0ec 100644 --- a/src/indev/lv_indev.c +++ b/src/indev/lv_indev.c @@ -1113,8 +1113,8 @@ static void indev_proc_press(lv_indev_t * indev) new_obj_searched = true; } - /*The last object might have scroll throw. Stop it manually*/ - if(new_obj_searched && indev->pointer.last_obj) { + /*The scroll object might have scroll throw. Stop it manually*/ + if(new_obj_searched && indev->pointer.scroll_obj) { /*Attempt to stop scroll throw animation firstly*/ if(!indev->scroll_throw_anim || !lv_anim_delete(indev, indev_scroll_throw_anim_cb)) { @@ -1155,6 +1155,7 @@ static void indev_proc_press(lv_indev_t * indev) indev->pointer.scroll_sum.x = 0; indev->pointer.scroll_sum.y = 0; indev->pointer.scroll_dir = LV_DIR_NONE; + indev->pointer.scroll_obj = NULL; indev->pointer.gesture_dir = LV_DIR_NONE; indev->pointer.gesture_sent = 0; indev->pointer.gesture_sum.x = 0; @@ -1347,6 +1348,7 @@ static void indev_proc_reset_query_handler(lv_indev_t * indev) indev->pointer.scroll_sum.x = 0; indev->pointer.scroll_sum.y = 0; indev->pointer.scroll_dir = LV_DIR_NONE; + indev->pointer.scroll_obj = NULL; indev->pointer.scroll_throw_vect.x = 0; indev->pointer.scroll_throw_vect.y = 0; indev->pointer.gesture_sum.x = 0;