diff --git a/src/indev/lv_indev.c b/src/indev/lv_indev.c index 0b8753b33..625a7a045 100644 --- a/src/indev/lv_indev.c +++ b/src/indev/lv_indev.c @@ -486,6 +486,14 @@ lv_timer_t * lv_indev_get_read_timer(lv_indev_t * indev) return indev->read_timer; } +void lv_indev_delete_read_timer(lv_indev_t * indev) +{ + if(indev && indev->read_timer) { + lv_timer_delete(indev->read_timer); + indev->read_timer = NULL; + } +} + lv_obj_t * lv_indev_search_obj(lv_obj_t * obj, lv_point_t * point) { lv_obj_t * found_p = NULL; diff --git a/src/indev/lv_indev.h b/src/indev/lv_indev.h index b51bf93ac..51a53ad68 100644 --- a/src/indev/lv_indev.h +++ b/src/indev/lv_indev.h @@ -241,6 +241,13 @@ struct _lv_obj_t * lv_indev_get_active_obj(void); */ lv_timer_t * lv_indev_get_read_timer(lv_indev_t * indev); +/** + * Delete the read timer associates to indev. This is typically used when + * indev works in event driven mode instead of polling mode. + * @param indev pointer to an input device + */ +void lv_indev_delete_read_timer(lv_indev_t * indev); + /** * Search the most top, clickable object by a point * @param obj pointer to a start object, typically the screen