From ee4b8a39385203a560818f99b380565d16bc7665 Mon Sep 17 00:00:00 2001 From: absrd Date: Tue, 29 Jan 2019 20:52:59 +0100 Subject: Add relative pointer --- sway/input/cursor.c | 14 ++++++++++++++ sway/server.c | 4 ++++ 2 files changed, 18 insertions(+) (limited to 'sway') diff --git a/sway/input/cursor.c b/sway/input/cursor.c index c87efc2b..78e2f695 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -403,6 +403,14 @@ static void handle_cursor_motion(struct wl_listener *listener, void *data) { double dx = event->delta_x; double dy = event->delta_y; + double dx_unaccel = event->unaccel_dx; + double dy_unaccel = event->unaccel_dy; + + wlr_relative_pointer_manager_v1_send_relative_motion( + server.relative_pointer_manager, + cursor->seat->wlr_seat, event->time_msec, dx, dy, + dx_unaccel, dy_unaccel); + struct wlr_surface *surface = NULL; double sx, sy; struct sway_node *node = node_at_coords(cursor->seat, @@ -438,6 +446,12 @@ static void cursor_motion_absolute(struct sway_cursor *cursor, wlr_cursor_absolute_to_layout_coords(cursor->cursor, dev, x, y, &lx, &ly); + double dx = lx - cursor->cursor->x; + double dy = ly - cursor->cursor->y; + wlr_relative_pointer_manager_v1_send_relative_motion( + server.relative_pointer_manager, + cursor->seat->wlr_seat, (uint64_t)time_msec * 1000, dx, dy, dx, dy); + struct wlr_surface *surface = NULL; double sx, sy; struct sway_node *node = node_at_coords(cursor->seat, diff --git a/sway/server.c b/sway/server.c index 82262585..712d8022 100644 --- a/sway/server.c +++ b/sway/server.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -106,6 +107,9 @@ bool server_init(struct sway_server *server) { server->xdg_decoration.notify = handle_xdg_decoration; wl_list_init(&server->xdg_decorations); + server->relative_pointer_manager = + wlr_relative_pointer_manager_v1_create(server->wl_display); + server->pointer_constraints = wlr_pointer_constraints_v1_create(server->wl_display); server->pointer_constraint.notify = handle_pointer_constraint; -- cgit v1.2.3