view: remove pointer constraints on unmap

If the view has any pointer constraints, ensure they are removed
before the view is unmapped and the surface is no longer tied to the
view.
This commit is contained in:
Brian Ashworth 2019-02-10 15:23:50 -05:00 committed by Drew DeVault
parent 062da8eae7
commit 4e27785980

View File

@ -664,6 +664,13 @@ void view_unmap(struct sway_view *view) {
struct sway_seat *seat;
wl_list_for_each(seat, &server.input->seats, link) {
seat->cursor->image_surface = NULL;
if (seat->cursor->active_constraint) {
struct wlr_surface *constrain_surface =
seat->cursor->active_constraint->surface;
if (view_from_wlr_surface(constrain_surface) == view) {
sway_cursor_constrain(seat->cursor, NULL);
}
}
seat_consider_warp_to_focus(seat);
}