From 107e521553c2cefc4b6545ebfb036d8138b620d8 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Thu, 12 Sep 2019 19:20:46 +0200 Subject: [PATCH] wayland: Unset pointer constraint in the backend before dropping the grab Dropping the grab has the side effect that the pointer will be re-picked, and it might find another surface with a pointer constraint. If that were the case, the focus change would try to add the pointer constraint before the now old focus surface released its own. Just invert these operations, so the constraint is unset before the repick that might enable another pointer constraint. Closes: https://gitlab.gnome.org/GNOME/mutter/issues/779 --- src/wayland/meta-wayland-pointer-constraints.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wayland/meta-wayland-pointer-constraints.c b/src/wayland/meta-wayland-pointer-constraints.c index 22197d58d..837779555 100644 --- a/src/wayland/meta-wayland-pointer-constraints.c +++ b/src/wayland/meta-wayland-pointer-constraints.c @@ -419,8 +419,8 @@ meta_wayland_pointer_constraint_disable (MetaWaylandPointerConstraint *constrain { constraint->is_enabled = FALSE; meta_wayland_pointer_constraint_notify_deactivated (constraint); - meta_wayland_pointer_end_grab (constraint->grab.pointer); meta_backend_set_client_pointer_constraint (meta_get_backend (), NULL); + meta_wayland_pointer_end_grab (constraint->grab.pointer); } void