From 5c90296c1997eadff9bcd87c86700c14810ad9c4 Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Sun, 10 Feb 2019 15:23:50 -0500 Subject: [PATCH] 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. --- sway/tree/view.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sway/tree/view.c b/sway/tree/view.c index 612cf96ae..943734dc7 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -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); }