[mutter/wip/wayland-display: 65/65] MetaWaylandSeat: reset pointer focus always when it might be different



commit e2c768d682bc2efbd93918d087956dd8a160ed56
Author: Giovanni Campagna <gcampagn redhat com>
Date:   Wed Aug 14 16:29:09 2013 +0200

    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 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/src/wayland/meta-wayland-seat.c b/src/wayland/meta-wayland-seat.c
index 8f31231..904d010 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)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]