From d0fe721fbbfbbdced91b94889c863c68c33c8125 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 5 Aug 2021 06:26:34 +0200 Subject: seatop_down: Change type of sx, sy to double in begin_seatop_down Losing the precision resulted in wlr_cursor and wlr_seat::pointer_state getting out of sync during pointer motion in seatop_down. Since the difference was always under 1 px, it was practically impossible to notice in normal use. But because of being out of sync, cursor_rebase would always end up incorrectly calling wlr_seat_pointer_notify_motion from seatop_default_begin (on releasing mouse button) which broke cursor locking. See #5405 Closes #4632 --- include/sway/input/seat.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/sway/input') diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index 4118df66..a2b5d2a1 100644 --- a/include/sway/input/seat.h +++ b/include/sway/input/seat.h @@ -239,7 +239,7 @@ enum wlr_edges find_resize_edge(struct sway_container *cont, void seatop_begin_default(struct sway_seat *seat); void seatop_begin_down(struct sway_seat *seat, struct sway_container *con, - uint32_t time_msec, int sx, int sy); + uint32_t time_msec, double sx, double sy); void seatop_begin_move_floating(struct sway_seat *seat, struct sway_container *con); -- cgit v1.2.3