summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Fourdan <ofourdan@redhat.com>2021-03-04 14:13:41 +0100
committerOlivier Fourdan <ofourdan@redhat.com>2021-03-05 09:25:24 +0100
commita8581795ed540797d47ba0bcad58f4a6cdaf1a7c (patch)
tree8504f8bf342358bb7faf6d10b08dd9562b566723
parentf20dc97947d368d0750ea190f4b4df88d005166a (diff)
xwayland: Fix LeaveNotify for relative pointer
Since commit 20c78f38, we use the relative pointer for enter/leave events. However, sprite_check_lost_focus() which verifies whether the pointer has left an Xwayland surface still explicitly check for the absolute pointer. As a result, no LeaveNotify event is emitted anymore now when the pointer crosses from an Xwayland surface to a Wayland native one. Make sure to check the last slave device against get_pointer_event() as well, not just the absolute pointer. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Acked-by: Martin Peres <martin.peres@mupuf.org> Acked-by: Roman Gilg <subdiff@gmail.com> Tested-by: Roman Gilg <subdiff@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Fixes: 20c78f38 - xwayland: use get_pointer_device() for enter/leave handling too (cherry picked from commit d7391f383ddca5089586b4d04fede56169a1a85e)
-rw-r--r--hw/xwayland/xwayland-input.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c
index 9b7421059..26b3630c7 100644
--- a/hw/xwayland/xwayland-input.c
+++ b/hw/xwayland/xwayland-input.c
@@ -2652,7 +2652,7 @@ sprite_check_lost_focus(SpritePtr sprite, WindowPtr window)
* devices so we can find out the xwl_seat, but those don't actually own
* their sprite, so the match doesn't mean a lot.
*/
- if (master->lastSlave != xwl_seat->pointer)
+ if (master->lastSlave != get_pointer_device(xwl_seat))
return FALSE;
if (xwl_seat->focus_window != NULL &&