From e14bd837e1c9668690718f5b4abe2bd3f43c95c1 Mon Sep 17 00:00:00 2001 From: Sebastian Keller Date: Sat, 11 May 2024 20:12:26 +0200 Subject: [PATCH] pointer-constraints/native: Warp locked pointer to correct position In case of empty regions (e.g. when locking the pointer) the pointer was only forced to stay within the boundaries of its current pixel (i.e. culling subpixel position), instead of the position where the pointer lock did start. Fixes: 07d24fe50 ("backends/native: Allow infinitely small pointer constraint regions") Part-of: (cherry picked from commit d6868659180b87bcaa424767f4b49d0d9721ef7f) --- src/backends/native/meta-pointer-constraint-native.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backends/native/meta-pointer-constraint-native.c b/src/backends/native/meta-pointer-constraint-native.c index e3bbdd739..390e1445e 100644 --- a/src/backends/native/meta-pointer-constraint-native.c +++ b/src/backends/native/meta-pointer-constraint-native.c @@ -619,7 +619,11 @@ meta_pointer_constraint_impl_native_ensure_constrained (MetaPointerConstraintImp { if (x != constraint_impl_native->origin.x || y != constraint_impl_native->origin.y) - clutter_seat_warp_pointer (seat, x, y); + { + clutter_seat_warp_pointer (seat, + constraint_impl_native->origin.x, + constraint_impl_native->origin.y); + } } else if (!mtk_region_contains_point (region, (int) rel_x, (int) rel_y)) {