diff --git a/src/core/lv_obj_tree.c b/src/core/lv_obj_tree.c index 8da23ad9a..0de79f498 100644 --- a/src/core/lv_obj_tree.c +++ b/src/core/lv_obj_tree.c @@ -484,8 +484,13 @@ static void lv_obj_delete_async_cb(void * obj) static void obj_indev_reset(lv_indev_t * indev, lv_obj_t * obj) { - /*Wait for release to avoid accidentally triggering other obj to be clicked*/ - lv_indev_wait_release(indev); + /* If the input device is already in the release state, + * there is no need to wait for the input device to be released + */ + if(lv_indev_get_state(indev) != LV_INDEV_STATE_RELEASED) { + /*Wait for release to avoid accidentally triggering other obj to be clicked*/ + lv_indev_wait_release(indev); + } /*Reset the input device*/ lv_indev_reset(indev, obj);