diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2015-05-22 10:58:56 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2015-05-26 10:53:23 +1000 |
commit | 09347c1e4f4e2b4cf116075cc87c1881e5c997a4 (patch) | |
tree | 682fe804d82ed239a21a712339ea1661906d9a0c | |
parent | 18999667caaa024f8f6ce3e8a8ae0b615d176a27 (diff) | |
download | libinput-09347c1e4f4e2b4cf116075cc87c1881e5c997a4.tar.gz |
gestures: check for valid types on the gesture event API
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r-- | src/libinput.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/libinput.c b/src/libinput.c index 1c502849..0346578a 100644 --- a/src/libinput.c +++ b/src/libinput.c @@ -665,30 +665,68 @@ libinput_event_touch_get_y(struct libinput_event_touch *event) LIBINPUT_EXPORT uint32_t libinput_event_gesture_get_time(struct libinput_event_gesture *event) { + require_event_type(libinput_event_get_context(&event->base), + event->base.type, + 0, + LIBINPUT_EVENT_GESTURE_PINCH_START, + LIBINPUT_EVENT_GESTURE_PINCH_UPDATE, + LIBINPUT_EVENT_GESTURE_PINCH_END, + LIBINPUT_EVENT_GESTURE_SWIPE_START, + LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE, + LIBINPUT_EVENT_GESTURE_SWIPE_END); + return event->time; } LIBINPUT_EXPORT int libinput_event_gesture_get_finger_count(struct libinput_event_gesture *event) { + require_event_type(libinput_event_get_context(&event->base), + event->base.type, + 0, + LIBINPUT_EVENT_GESTURE_PINCH_START, + LIBINPUT_EVENT_GESTURE_PINCH_UPDATE, + LIBINPUT_EVENT_GESTURE_PINCH_END, + LIBINPUT_EVENT_GESTURE_SWIPE_START, + LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE, + LIBINPUT_EVENT_GESTURE_SWIPE_END); + return event->finger_count; } LIBINPUT_EXPORT int libinput_event_gesture_get_cancelled(struct libinput_event_gesture *event) { + require_event_type(libinput_event_get_context(&event->base), + event->base.type, + 0, + LIBINPUT_EVENT_GESTURE_PINCH_END, + LIBINPUT_EVENT_GESTURE_SWIPE_END); + return event->cancelled; } LIBINPUT_EXPORT double libinput_event_gesture_get_dx(struct libinput_event_gesture *event) { + require_event_type(libinput_event_get_context(&event->base), + event->base.type, + 0.0, + LIBINPUT_EVENT_GESTURE_PINCH_UPDATE, + LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE); + return event->delta.x; } LIBINPUT_EXPORT double libinput_event_gesture_get_dy(struct libinput_event_gesture *event) { + require_event_type(libinput_event_get_context(&event->base), + event->base.type, + 0.0, + LIBINPUT_EVENT_GESTURE_PINCH_UPDATE, + LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE); + return event->delta.y; } @@ -696,6 +734,12 @@ LIBINPUT_EXPORT double libinput_event_gesture_get_dx_unaccelerated( struct libinput_event_gesture *event) { + require_event_type(libinput_event_get_context(&event->base), + event->base.type, + 0.0, + LIBINPUT_EVENT_GESTURE_PINCH_UPDATE, + LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE); + return event->delta_unaccel.x; } @@ -703,18 +747,34 @@ LIBINPUT_EXPORT double libinput_event_gesture_get_dy_unaccelerated( struct libinput_event_gesture *event) { + require_event_type(libinput_event_get_context(&event->base), + event->base.type, + 0.0, + LIBINPUT_EVENT_GESTURE_PINCH_UPDATE, + LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE); + return event->delta_unaccel.y; } LIBINPUT_EXPORT double libinput_event_gesture_get_scale(struct libinput_event_gesture *event) { + require_event_type(libinput_event_get_context(&event->base), + event->base.type, + 0.0, + LIBINPUT_EVENT_GESTURE_PINCH_UPDATE); + return event->scale; } LIBINPUT_EXPORT double libinput_event_gesture_get_angle(struct libinput_event_gesture *event) { + require_event_type(libinput_event_get_context(&event->base), + event->base.type, + 0.0, + LIBINPUT_EVENT_GESTURE_PINCH_UPDATE); + return event->angle; } |