diff options
author | absrd <fk@bsrd.io> | 2019-01-29 20:52:59 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2019-01-30 19:53:59 +0100 |
commit | ee4b8a39385203a560818f99b380565d16bc7665 (patch) | |
tree | d2dad79e472eaa5314f4de46a72abf467d37e628 /sway/input | |
parent | Implement pointer-constraints-unstable-v1 (diff) | |
download | sway-ee4b8a39385203a560818f99b380565d16bc7665.tar.gz sway-ee4b8a39385203a560818f99b380565d16bc7665.tar.zst sway-ee4b8a39385203a560818f99b380565d16bc7665.zip |
Add relative pointer
Diffstat (limited to 'sway/input')
-rw-r--r-- | sway/input/cursor.c | 14 |
1 files changed, 14 insertions, 0 deletions
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) { | |||
403 | double dx = event->delta_x; | 403 | double dx = event->delta_x; |
404 | double dy = event->delta_y; | 404 | double dy = event->delta_y; |
405 | 405 | ||
406 | double dx_unaccel = event->unaccel_dx; | ||
407 | double dy_unaccel = event->unaccel_dy; | ||
408 | |||
409 | wlr_relative_pointer_manager_v1_send_relative_motion( | ||
410 | server.relative_pointer_manager, | ||
411 | cursor->seat->wlr_seat, event->time_msec, dx, dy, | ||
412 | dx_unaccel, dy_unaccel); | ||
413 | |||
406 | struct wlr_surface *surface = NULL; | 414 | struct wlr_surface *surface = NULL; |
407 | double sx, sy; | 415 | double sx, sy; |
408 | struct sway_node *node = node_at_coords(cursor->seat, | 416 | struct sway_node *node = node_at_coords(cursor->seat, |
@@ -438,6 +446,12 @@ static void cursor_motion_absolute(struct sway_cursor *cursor, | |||
438 | wlr_cursor_absolute_to_layout_coords(cursor->cursor, dev, | 446 | wlr_cursor_absolute_to_layout_coords(cursor->cursor, dev, |
439 | x, y, &lx, &ly); | 447 | x, y, &lx, &ly); |
440 | 448 | ||
449 | double dx = lx - cursor->cursor->x; | ||
450 | double dy = ly - cursor->cursor->y; | ||
451 | wlr_relative_pointer_manager_v1_send_relative_motion( | ||
452 | server.relative_pointer_manager, | ||
453 | cursor->seat->wlr_seat, (uint64_t)time_msec * 1000, dx, dy, dx, dy); | ||
454 | |||
441 | struct wlr_surface *surface = NULL; | 455 | struct wlr_surface *surface = NULL; |
442 | double sx, sy; | 456 | double sx, sy; |
443 | struct sway_node *node = node_at_coords(cursor->seat, | 457 | struct sway_node *node = node_at_coords(cursor->seat, |