swaynag: Use position from wl_pointer.enter

Only wl_pointer.motion was used to update pointer position, which would
cause issues if the pointer was not moved prior to wl_pointer.button.

This also fixes touch input through wl_pointer emulation, which fires
wl_pointer.button immediately after wl_pointer.enter.

Closes: https://github.com/swaywm/sway/issues/5991
This commit is contained in:
Kenny Levinsen 2021-02-07 14:17:56 +01:00 committed by Tudor Brindus
parent 169b90f90b
commit 63420a2caa

View file

@ -178,6 +178,8 @@ static void wl_pointer_enter(void *data, struct wl_pointer *wl_pointer,
wl_fixed_t surface_x, wl_fixed_t surface_y) {
struct swaynag_seat *seat = data;
struct swaynag_pointer *pointer = &seat->pointer;
pointer->x = wl_fixed_to_int(surface_x);
pointer->y = wl_fixed_to_int(surface_y);
pointer->serial = serial;
update_cursor(seat);
}