static void tp_edge_scroll_set_state(struct tp_dispatch *tp, struct tp_touch *t, enum tp_edge_scroll_touch_state state) { libinput_timer_cancel(&t->scroll.timer); t->scroll.edge_state = state; switch (state) { case EDGE_SCROLL_TOUCH_STATE_NONE: t->scroll.edge = EDGE_NONE; break; case EDGE_SCROLL_TOUCH_STATE_EDGE_NEW: t->scroll.edge = tp_touch_get_edge(tp, t); t->scroll.initial = t->point; tp_edge_scroll_set_timer(tp, t); break; case EDGE_SCROLL_TOUCH_STATE_EDGE: break; case EDGE_SCROLL_TOUCH_STATE_AREA: t->scroll.edge = EDGE_NONE; break; } }
/* * tp_button_set_state, change state and implement on-entry behavior * as described in the state machine diagram. */ static void tp_button_set_state(struct tp_dispatch *tp, struct tp_touch *t, enum button_state new_state, enum button_event event) { libinput_timer_cancel(&t->button.timer); t->button.state = new_state; switch (t->button.state) { case BUTTON_STATE_NONE: t->button.curr = 0; break; case BUTTON_STATE_AREA: t->button.curr = BUTTON_EVENT_IN_AREA; break; case BUTTON_STATE_BOTTOM: t->button.curr = event; break; case BUTTON_STATE_TOP: break; case BUTTON_STATE_TOP_NEW: t->button.curr = event; tp_button_set_enter_timer(tp, t); break; case BUTTON_STATE_TOP_TO_IGNORE: tp_button_set_leave_timer(tp, t); break; case BUTTON_STATE_IGNORE: t->button.curr = 0; break; } }
static void middlebutton_timer_cancel(struct evdev_device *device) { libinput_timer_cancel(&device->middlebutton.timer); }
void tp_remove_gesture(struct tp_dispatch *tp) { libinput_timer_cancel(&tp->gesture.finger_count_switch_timer); }
static void tp_tap_clear_timer(struct tp_dispatch *tp) { libinput_timer_cancel(&tp->tap.timer); }