summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libinput-private.h2
-rw-r--r--src/libinput.c86
2 files changed, 51 insertions, 37 deletions
diff --git a/src/libinput-private.h b/src/libinput-private.h
index a1d5000..1a564f9 100644
--- a/src/libinput-private.h
+++ b/src/libinput-private.h
@@ -136,6 +136,8 @@ struct libinput {
int refcount;
struct list device_group_list;
+
+ uint64_t last_event_time;
};
typedef void (*libinput_seat_destroy_func) (struct libinput_seat *seat);
diff --git a/src/libinput.c b/src/libinput.c
index 514a611..472b1c0 100644
--- a/src/libinput.c
+++ b/src/libinput.c
@@ -25,6 +25,7 @@
#include "config.h"
#include <errno.h>
+#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -73,6 +74,43 @@ check_event_type(struct libinput *libinput,
return rc;
}
+static inline const char *
+event_type_to_str(enum libinput_event_type type)
+{
+ switch(type) {
+ CASE_RETURN_STRING(LIBINPUT_EVENT_DEVICE_ADDED);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_DEVICE_REMOVED);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_KEYBOARD_KEY);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_POINTER_MOTION);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_POINTER_BUTTON);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_POINTER_AXIS);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TOUCH_DOWN);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TOUCH_UP);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TOUCH_MOTION);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TOUCH_CANCEL);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TOUCH_FRAME);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_TOOL_AXIS);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_TOOL_TIP);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_TOOL_BUTTON);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_PAD_BUTTON);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_PAD_RING);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_PAD_STRIP);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_SWIPE_END);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_PINCH_BEGIN);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_PINCH_UPDATE);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_PINCH_END);
+ CASE_RETURN_STRING(LIBINPUT_EVENT_SWITCH_TOGGLE);
+ case LIBINPUT_EVENT_NONE:
+ abort();
+ }
+
+ return NULL;
+}
+
struct libinput_source {
libinput_source_dispatch_t dispatch;
void *user_data;
@@ -2026,6 +2064,17 @@ post_device_event(struct libinput_device *device,
struct libinput_event *event)
{
struct libinput_event_listener *listener, *tmp;
+#if 0
+ struct libinput *libinput = device->seat->libinput;
+
+ if (libinput->last_event_time > time) {
+ log_bug_libinput(device->seat->libinput,
+ "out-of-order timestamps for %s time %" PRIu64 "\n",
+ event_type_to_str(type),
+ time);
+ }
+ libinput->last_event_time = time;
+#endif
init_event_base(event, device, type);
@@ -2660,43 +2709,6 @@ gesture_notify_pinch_end(struct libinput_device *device,
finger_count, cancelled, &zero, &zero, scale, 0.0);
}
-static inline const char *
-event_type_to_str(enum libinput_event_type type)
-{
- switch(type) {
- CASE_RETURN_STRING(LIBINPUT_EVENT_DEVICE_ADDED);
- CASE_RETURN_STRING(LIBINPUT_EVENT_DEVICE_REMOVED);
- CASE_RETURN_STRING(LIBINPUT_EVENT_KEYBOARD_KEY);
- CASE_RETURN_STRING(LIBINPUT_EVENT_POINTER_MOTION);
- CASE_RETURN_STRING(LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE);
- CASE_RETURN_STRING(LIBINPUT_EVENT_POINTER_BUTTON);
- CASE_RETURN_STRING(LIBINPUT_EVENT_POINTER_AXIS);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TOUCH_DOWN);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TOUCH_UP);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TOUCH_MOTION);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TOUCH_CANCEL);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TOUCH_FRAME);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_TOOL_AXIS);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_TOOL_TIP);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_TOOL_BUTTON);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_PAD_BUTTON);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_PAD_RING);
- CASE_RETURN_STRING(LIBINPUT_EVENT_TABLET_PAD_STRIP);
- CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN);
- CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE);
- CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_SWIPE_END);
- CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_PINCH_BEGIN);
- CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_PINCH_UPDATE);
- CASE_RETURN_STRING(LIBINPUT_EVENT_GESTURE_PINCH_END);
- CASE_RETURN_STRING(LIBINPUT_EVENT_SWITCH_TOGGLE);
- case LIBINPUT_EVENT_NONE:
- abort();
- }
-
- return NULL;
-}
-
void
switch_notify_toggle(struct libinput_device *device,
uint64_t time,