pointer: add unaccelerated deltas to touchpad gesture events

These are not used by Wayland, but can be used by the compositor's built-in features.
This commit is contained in:
Greg V 2021-12-22 19:32:43 +03:00
parent 823476e76e
commit 5b94d6f3b6
2 changed files with 6 additions and 0 deletions

View file

@ -177,6 +177,8 @@ void handle_pointer_swipe_update(struct libinput_event *event,
.fingers = libinput_event_gesture_get_finger_count(gevent),
.dx = libinput_event_gesture_get_dx(gevent),
.dy = libinput_event_gesture_get_dy(gevent),
.unaccel_dx = libinput_event_gesture_get_dx_unaccelerated(gevent),
.unaccel_dy = libinput_event_gesture_get_dy_unaccelerated(gevent),
};
wlr_signal_emit_safe(&wlr_dev->pointer->events.swipe_update, &wlr_event);
}
@ -236,6 +238,8 @@ void handle_pointer_pinch_update(struct libinput_event *event,
.fingers = libinput_event_gesture_get_finger_count(gevent),
.dx = libinput_event_gesture_get_dx(gevent),
.dy = libinput_event_gesture_get_dy(gevent),
.unaccel_dx = libinput_event_gesture_get_dx_unaccelerated(gevent),
.unaccel_dy = libinput_event_gesture_get_dy_unaccelerated(gevent),
.scale = libinput_event_gesture_get_scale(gevent),
.rotation = libinput_event_gesture_get_angle_delta(gevent),
};

View file

@ -96,6 +96,7 @@ struct wlr_event_pointer_swipe_update {
// Relative coordinates of the logical center of the gesture
// compared to the previous event.
double dx, dy;
double unaccel_dx, unaccel_dy;
};
struct wlr_event_pointer_swipe_end {
@ -117,6 +118,7 @@ struct wlr_event_pointer_pinch_update {
// Relative coordinates of the logical center of the gesture
// compared to the previous event.
double dx, dy;
double unaccel_dx, unaccel_dy;
// Absolute scale compared to the begin event
double scale;
// Relative angle in degrees clockwise compared to the previous event.