tp_tap_clear_timer(tp);
break;
case TAP_EVENT_RELEASE:
- tp_tap_notify(tp, time, 2, LIBINPUT_BUTTON_STATE_PRESSED);
+ tp_tap_notify(tp,
+ tp->tap.first_press_time,
+ 2,
+ LIBINPUT_BUTTON_STATE_PRESSED);
tp_tap_notify(tp, time, 2, LIBINPUT_BUTTON_STATE_RELEASED);
tp->tap.state = TAP_STATE_IDLE;
break;
case TAP_EVENT_RELEASE:
tp->tap.state = TAP_STATE_TOUCH_2_HOLD;
if (t->tap.state == TAP_TOUCH_STATE_TOUCH) {
- tp_tap_notify(tp, time, 3, LIBINPUT_BUTTON_STATE_PRESSED);
+ tp_tap_notify(tp,
+ tp->tap.first_press_time,
+ 3,
+ LIBINPUT_BUTTON_STATE_PRESSED);
tp_tap_notify(tp, time, 3, LIBINPUT_BUTTON_STATE_RELEASED);
}
break;
struct libinput *li = dev->libinput;
enum libinput_config_tap_button_map map = _i; /* ranged test */
unsigned int button = 0;
+ struct libinput_event *ev;
+ struct libinput_event_pointer *ptrev;
+ uint64_t ptime, rtime;
litest_enable_tap(dev->libinput_device);
litest_set_tap_map(dev->libinput_device, map);
libinput_dispatch(li);
- litest_assert_button_event(li, button,
- LIBINPUT_BUTTON_STATE_PRESSED);
- litest_timeout_tap();
- litest_assert_button_event(li, button,
- LIBINPUT_BUTTON_STATE_RELEASED);
+ ev = libinput_get_event(li);
+ ptrev = litest_is_button_event(ev,
+ button,
+ LIBINPUT_BUTTON_STATE_PRESSED);
+ ptime = libinput_event_pointer_get_time_usec(ptrev);
+ libinput_event_destroy(ev);
+ ev = libinput_get_event(li);
+ ptrev = litest_is_button_event(ev,
+ button,
+ LIBINPUT_BUTTON_STATE_RELEASED);
+ rtime = libinput_event_pointer_get_time_usec(ptrev);
+ libinput_event_destroy(ev);
+
+ ck_assert_int_lt(ptime, rtime);
litest_assert_empty_queue(li);
}
struct libinput *li = dev->libinput;
enum libinput_config_tap_button_map map = _i; /* ranged test */
unsigned int button = 0;
+ struct libinput_event *ev;
+ struct libinput_event_pointer *ptrev;
+ uint64_t ptime, rtime;
litest_enable_tap(dev->libinput_device);
litest_set_tap_map(dev->libinput_device, map);
libinput_dispatch(li);
- litest_assert_button_event(li, button,
- LIBINPUT_BUTTON_STATE_PRESSED);
- litest_timeout_tap();
- litest_assert_button_event(li, button,
- LIBINPUT_BUTTON_STATE_RELEASED);
+ ev = libinput_get_event(li);
+ ptrev = litest_is_button_event(ev,
+ button,
+ LIBINPUT_BUTTON_STATE_PRESSED);
+ ptime = libinput_event_pointer_get_time_usec(ptrev);
+ libinput_event_destroy(ev);
+ ev = libinput_get_event(li);
+ ptrev = litest_is_button_event(ev,
+ button,
+ LIBINPUT_BUTTON_STATE_RELEASED);
+ rtime = libinput_event_pointer_get_time_usec(ptrev);
+ libinput_event_destroy(ev);
+
+ ck_assert_int_lt(ptime, rtime);
litest_assert_empty_queue(li);
}
}
for (i = 0; i < 3; i++) {
+ uint64_t ptime, rtime;
+ struct libinput_event *ev;
+ struct libinput_event_pointer *ptrev;
+
litest_drain_events(li);
litest_touch_down(dev, 0, 50, 50);
libinput_dispatch(li);
- litest_assert_button_event(li, button,
- LIBINPUT_BUTTON_STATE_PRESSED);
- litest_timeout_tap();
- litest_assert_button_event(li, button,
- LIBINPUT_BUTTON_STATE_RELEASED);
+ ev = libinput_get_event(li);
+ ptrev = litest_is_button_event(ev,
+ button,
+ LIBINPUT_BUTTON_STATE_PRESSED);
+ ptime = libinput_event_pointer_get_time_usec(ptrev);
+ libinput_event_destroy(ev);
+ ev = libinput_get_event(li);
+ ptrev = litest_is_button_event(ev,
+ button,
+ LIBINPUT_BUTTON_STATE_RELEASED);
+ rtime = libinput_event_pointer_get_time_usec(ptrev);
+ libinput_event_destroy(ev);
+
+ ck_assert_int_lt(ptime, rtime);
- litest_assert_empty_queue(li);
}
}
END_TEST