summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiovanni Campagna <gcampagn@redhat.com>2013-08-14 16:29:09 +0200
committerGiovanni Campagna <gcampagn@redhat.com>2013-08-14 18:42:07 +0200
commite2c768d682bc2efbd93918d087956dd8a160ed56 (patch)
tree75c7dc8feb5a6e607c8bb223f2c6f3ad3178e4b0
parenta67c12e873bb008c35970ed7ed063e7517db708e (diff)
downloadmutter-wip/wayland-display.tar.gz
MetaWaylandSeat: reset pointer focus always when it might be differentwip/wayland-display
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.
-rw-r--r--src/wayland/meta-wayland-seat.c4
1 files 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)