From e2c768d682bc2efbd93918d087956dd8a160ed56 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Wed, 14 Aug 2013 16:29:09 +0200 Subject: [PATCH] MetaWaylandSeat: reset pointer focus always when it might be different It can happen because of a grab that the current surface changes but the focus doesn't. Later on, when the grab ends, we would keep the previous focus until the user goes out of the window and back in again. --- src/wayland/meta-wayland-seat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/wayland/meta-wayland-seat.c b/src/wayland/meta-wayland-seat.c index 8f3123160..904d01055 100644 --- a/src/wayland/meta-wayland-seat.c +++ b/src/wayland/meta-wayland-seat.c @@ -520,14 +520,14 @@ meta_wayland_seat_repick (MetaWaylandSeat *seat, surface = meta_shaped_texture_get_wayland_surface (shaped_texture); } - if (surface != pointer->current) + pointer->current = surface; + if (surface != pointer->focus) { const MetaWaylandPointerGrabInterface *interface = pointer->grab->interface; interface->focus (pointer->grab, surface, pointer->current_x, pointer->current_y); - pointer->current = surface; } if (pointer->grab->focus)