From b3c202af2386e71a612ed49ab08b147ee6cd6b50 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 8 May 2023 12:49:40 +1000 Subject: [PATCH] ei: tighten the event type checks Require exact event types, not just approximate ones. It's always a bug to call any of these functions for an event type that's something else. --- src/libei-event.c | 70 +++++++---------------------------------------- 1 file changed, 10 insertions(+), 60 deletions(-) diff --git a/src/libei-event.c b/src/libei-event.c index f96612d..aceec5f 100644 --- a/src/libei-event.c +++ b/src/libei-event.c @@ -206,12 +206,7 @@ ei_event_keyboard_get_xkb_group(struct ei_event *event) _public_ double ei_event_pointer_get_dx(struct ei_event *event) { - require_event_type(event, 0.0, - EI_EVENT_POINTER_MOTION, - EI_EVENT_POINTER_MOTION_ABSOLUTE, - EI_EVENT_BUTTON_BUTTON, - EI_EVENT_SCROLL_DELTA, - EI_EVENT_SCROLL_DISCRETE); + require_event_type(event, 0.0, EI_EVENT_POINTER_MOTION) return event->pointer.dx; } @@ -219,12 +214,7 @@ ei_event_pointer_get_dx(struct ei_event *event) _public_ double ei_event_pointer_get_dy(struct ei_event *event) { - require_event_type(event, 0.0, - EI_EVENT_POINTER_MOTION, - EI_EVENT_POINTER_MOTION_ABSOLUTE, - EI_EVENT_BUTTON_BUTTON, - EI_EVENT_SCROLL_DELTA, - EI_EVENT_SCROLL_DISCRETE); + require_event_type(event, 0.0, EI_EVENT_POINTER_MOTION); return event->pointer.dy; } @@ -232,12 +222,7 @@ ei_event_pointer_get_dy(struct ei_event *event) _public_ double ei_event_pointer_get_absolute_x(struct ei_event *event) { - require_event_type(event, 0.0, - EI_EVENT_POINTER_MOTION, - EI_EVENT_POINTER_MOTION_ABSOLUTE, - EI_EVENT_BUTTON_BUTTON, - EI_EVENT_SCROLL_DELTA, - EI_EVENT_SCROLL_DISCRETE); + require_event_type(event, 0.0, EI_EVENT_POINTER_MOTION_ABSOLUTE); return event->pointer.absx; } @@ -245,12 +230,7 @@ ei_event_pointer_get_absolute_x(struct ei_event *event) _public_ double ei_event_pointer_get_absolute_y(struct ei_event *event) { - require_event_type(event, 0.0, - EI_EVENT_POINTER_MOTION, - EI_EVENT_POINTER_MOTION_ABSOLUTE, - EI_EVENT_BUTTON_BUTTON, - EI_EVENT_SCROLL_DELTA, - EI_EVENT_SCROLL_DISCRETE); + require_event_type(event, 0.0, EI_EVENT_POINTER_MOTION_ABSOLUTE); return event->pointer.absy; } @@ -258,12 +238,7 @@ ei_event_pointer_get_absolute_y(struct ei_event *event) _public_ uint32_t ei_event_button_get_button(struct ei_event *event) { - require_event_type(event, 0, - EI_EVENT_POINTER_MOTION, - EI_EVENT_POINTER_MOTION_ABSOLUTE, - EI_EVENT_BUTTON_BUTTON, - EI_EVENT_SCROLL_DELTA, - EI_EVENT_SCROLL_DISCRETE); + require_event_type(event, 0, EI_EVENT_BUTTON_BUTTON); return event->pointer.button; } @@ -271,12 +246,7 @@ ei_event_button_get_button(struct ei_event *event) _public_ bool ei_event_button_get_is_press(struct ei_event *event) { - require_event_type(event, false, - EI_EVENT_POINTER_MOTION, - EI_EVENT_POINTER_MOTION_ABSOLUTE, - EI_EVENT_BUTTON_BUTTON, - EI_EVENT_SCROLL_DELTA, - EI_EVENT_SCROLL_DISCRETE); + require_event_type(event, false, EI_EVENT_BUTTON_BUTTON); return event->pointer.button_is_press; } @@ -284,48 +254,28 @@ ei_event_button_get_is_press(struct ei_event *event) _public_ double ei_event_scroll_get_dx(struct ei_event *event) { - require_event_type(event, 0, - EI_EVENT_POINTER_MOTION, - EI_EVENT_POINTER_MOTION_ABSOLUTE, - EI_EVENT_BUTTON_BUTTON, - EI_EVENT_SCROLL_DELTA, - EI_EVENT_SCROLL_DISCRETE); + require_event_type(event, 0, EI_EVENT_SCROLL_DELTA); return event->pointer.sx; } _public_ double ei_event_scroll_get_dy(struct ei_event *event) { - require_event_type(event, 0, - EI_EVENT_POINTER_MOTION, - EI_EVENT_POINTER_MOTION_ABSOLUTE, - EI_EVENT_BUTTON_BUTTON, - EI_EVENT_SCROLL_DELTA, - EI_EVENT_SCROLL_DISCRETE); + require_event_type(event, 0, EI_EVENT_SCROLL_DELTA); return event->pointer.sy; } _public_ int32_t ei_event_scroll_get_discrete_dx(struct ei_event *event) { - require_event_type(event, 0, - EI_EVENT_POINTER_MOTION, - EI_EVENT_POINTER_MOTION_ABSOLUTE, - EI_EVENT_BUTTON_BUTTON, - EI_EVENT_SCROLL_DELTA, - EI_EVENT_SCROLL_DISCRETE); + require_event_type(event, 0, EI_EVENT_SCROLL_DISCRETE); return event->pointer.sdx; } _public_ int32_t ei_event_scroll_get_discrete_dy(struct ei_event *event) { - require_event_type(event, 0, - EI_EVENT_POINTER_MOTION, - EI_EVENT_POINTER_MOTION_ABSOLUTE, - EI_EVENT_BUTTON_BUTTON, - EI_EVENT_SCROLL_DELTA, - EI_EVENT_SCROLL_DISCRETE); + require_event_type(event, 0, EI_EVENT_SCROLL_DISCRETE); return event->pointer.sdy; }