[mutter/wip/carlosg/crossings: 3/11] wayland: Don't use CLUTTER_LEAVE source actor for repick




commit 0021fe173b3544e0103537a5d7efead2e4203716
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue Dec 22 17:24:31 2020 +0100

    wayland: Don't use CLUTTER_LEAVE source actor for repick
    
    This is the actor receiving the event, therefore precisely not the
    actor the pointer is on. We should avoid this event's source here,
    use the related actor (i.e. the one being entered) instead.
    
    Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1584
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1654>

 src/wayland/meta-wayland-pointer.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
---
diff --git a/src/wayland/meta-wayland-pointer.c b/src/wayland/meta-wayland-pointer.c
index 0b563efcce..ef0923577b 100644
--- a/src/wayland/meta-wayland-pointer.c
+++ b/src/wayland/meta-wayland-pointer.c
@@ -586,7 +586,9 @@ repick_for_event (MetaWaylandPointer *pointer,
   ClutterActor *actor;
   MetaWaylandSurface *surface;
 
-  if (for_event)
+  if (for_event && clutter_event_type (for_event) == CLUTTER_LEAVE)
+    actor = clutter_event_get_related (for_event);
+  else if (for_event)
     actor = clutter_event_get_source (for_event);
   else
     actor = clutter_stage_get_device_actor (stage, pointer->device, NULL);


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