input/seatop_default: properly notify pointer leave

Currently, clients receive wl_data_device::leave events only when the
pointer enters another surface, which leads to issues, such as #5220.
This happens because wlr_seat_pointer_notify_enter() is called when
handling motion events only for non-NULL surfaces.

Fixes #5220
This commit is contained in:
Nick Diego Yamane 2020-04-16 00:32:18 -04:00 committed by Simon Ser
parent 7251df94c1
commit 091f580b7c

View file

@ -219,6 +219,7 @@ static void cursor_do_rebase(struct sway_cursor *cursor, uint32_t time_msec,
}
if (surface == NULL) {
wlr_seat_pointer_notify_enter(wlr_seat, NULL, 0, 0);
wlr_seat_pointer_clear_focus(wlr_seat);
}
}