input: Provide microsecond timestamps in motion events

Provide timestamps with microsecond granularity if the backend can
provide it. Backends that can't should set it to 0.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
dev
Jonas Ådahl 9 years ago
parent 3845b32d5c
commit de1ed2e73b
  1. 1
      libweston/compositor.h
  2. 3
      libweston/libinput-device.c

@ -248,6 +248,7 @@ enum weston_pointer_motion_mask {
struct weston_pointer_motion_event { struct weston_pointer_motion_event {
uint32_t mask; uint32_t mask;
uint64_t time_usec;
double x; double x;
double y; double y;
double dx; double dx;

@ -86,6 +86,8 @@ handle_pointer_motion(struct libinput_device *libinput_device,
struct evdev_device *device = struct evdev_device *device =
libinput_device_get_user_data(libinput_device); libinput_device_get_user_data(libinput_device);
struct weston_pointer_motion_event event = { 0 }; struct weston_pointer_motion_event event = { 0 };
uint64_t time_usec =
libinput_event_pointer_get_time_usec(pointer_event);
double dx_unaccel, dy_unaccel; double dx_unaccel, dy_unaccel;
dx_unaccel = libinput_event_pointer_get_dx_unaccelerated(pointer_event); dx_unaccel = libinput_event_pointer_get_dx_unaccelerated(pointer_event);
@ -94,6 +96,7 @@ handle_pointer_motion(struct libinput_device *libinput_device,
event = (struct weston_pointer_motion_event) { event = (struct weston_pointer_motion_event) {
.mask = WESTON_POINTER_MOTION_REL | .mask = WESTON_POINTER_MOTION_REL |
WESTON_POINTER_MOTION_REL_UNACCEL, WESTON_POINTER_MOTION_REL_UNACCEL,
.time_usec = time_usec,
.dx = libinput_event_pointer_get_dx(pointer_event), .dx = libinput_event_pointer_get_dx(pointer_event),
.dy = libinput_event_pointer_get_dy(pointer_event), .dy = libinput_event_pointer_get_dy(pointer_event),
.dx_unaccel = dx_unaccel, .dx_unaccel = dx_unaccel,

Loading…
Cancel
Save