return ptrev;
}
+struct libinput_event_pointer *
+litest_is_motion_event(struct libinput_event *event)
+{
+ struct libinput_event_pointer *ptrev;
+ enum libinput_event_type type = LIBINPUT_EVENT_POINTER_MOTION;
+ double x, y, ux, uy;
+
+ ck_assert(event != NULL);
+ ck_assert_int_eq(libinput_event_get_type(event), type);
+ ptrev = libinput_event_get_pointer_event(event);
+
+ x = libinput_event_pointer_get_dx(ptrev);
+ y = libinput_event_pointer_get_dy(ptrev);
+ ux = libinput_event_pointer_get_dx_unaccelerated(ptrev);
+ uy = libinput_event_pointer_get_dy_unaccelerated(ptrev);
+
+ /* No 0 delta motion events */
+ ck_assert(x != 0.0 || y != 0.0 ||
+ ux != 0.0 || uy != 0.0);
+
+ return ptrev;
+}
+
void
litest_assert_button_event(struct libinput *li, unsigned int button,
enum libinput_button_state state)
struct libinput_event *event,
enum libinput_pointer_axis axis,
enum libinput_pointer_axis_source source);
+struct libinput_event_pointer * litest_is_motion_event(
+ struct libinput_event *event);
void litest_assert_button_event(struct libinput *li,
unsigned int button,
enum libinput_button_state state);
while (1) {
event = libinput_get_event(li);
- ck_assert_notnull(event);
- ck_assert_int_eq(libinput_event_get_type(event),
- LIBINPUT_EVENT_POINTER_MOTION);
-
- ptrev = libinput_event_get_pointer_event(event);
- ck_assert_notnull(ptrev);
+ ptrev = litest_is_motion_event(event);
if (fabs(libinput_event_pointer_get_dx(ptrev)) < DBL_MIN &&
fabs(libinput_event_pointer_get_dy(ptrev)) < DBL_MIN) {
libinput_dispatch(li);
event = libinput_get_event(li);
- ck_assert_notnull(event);
- ck_assert_int_eq(libinput_event_get_type(event),
- LIBINPUT_EVENT_POINTER_MOTION);
-
- ptrev = libinput_event_get_pointer_event(event);
- ck_assert(ptrev != NULL);
+ ptrev = litest_is_motion_event(event);
ev_dx = libinput_event_pointer_get_dx_unaccelerated(ptrev);
ev_dy = libinput_event_pointer_get_dy_unaccelerated(ptrev);