/* Process a new point from LV_INDEV_TYPE_POINTER input device  */
static void indev_pointer_proc(lv_indev_t *i, lv_indev_data_t *data)
/* Process a new point from LV_INDEV_TYPE_POINTER input device  */
static void indev_pointer_proc(lv_indev_t *i, lv_indev_data_t *data)
{
    if(i->cursor != NULL &&
       (i->proc.types.pointer.last_point.x != data->point.x || i->proc.types.pointer.last_point.y != data->point.y)) {
        lv_obj_set_pos(i->cursor, data->point.x, data->point.y);
    }
    i->proc.types.pointer.act_point.x = data->point.x;
    i->proc.types.pointer.act_point.y = data->point.y;
    if(i->proc.state == LV_INDEV_STATE_PR) {
        indev_proc_press(&i->proc);
    } else {
        indev_proc_release(&i->proc);
    }
    i->proc.types.pointer.last_point.x = i->proc.types.pointer.act_point.x;
    i->proc.types.pointer.last_point.y = i->proc.types.pointer.act_point.y;
}