aboutsummaryrefslogtreecommitdiff
path: root/sway/tree/view.c
diff options
context:
space:
mode:
authorBrian Ashworth <bosrsf04@gmail.com>2019-02-10 15:23:50 -0500
committeremersion <contact@emersion.fr>2019-02-10 21:29:45 +0100
commit418c19fe528190918d41aefed46abe02c8b6834f (patch)
tree13008011fb4b16dd6cbfce1e307a544ea99aa0db /sway/tree/view.c
parent3952d4f4f3b76290101e0b82e7359d11e79058bb (diff)
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.
Diffstat (limited to 'sway/tree/view.c')
-rw-r--r--sway/tree/view.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 612cf96a..943734dc 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);
}