xserver/hw
Olivier Fourdan b97b459c06 xwayland: Update sprite prior to clearing the focus window
Xwayland has its own XYToWindow() handler to account for the case when
the pointer leaves an X11 surface to enter another Wayland native window
(which of course are unknown to Xwayland).

When that occurs, Xwayland will treat it as if the pointer had entered
the root window so that the X11 clients receive an appropriate leave
event.

When the pointer leaves the X11 surface, Xwayland will call
CheckMotion() to update the sprite coordinates and possibly the cursor.

However, CheckMotion() will call back into the XYToWindow() handler,
which will then pretend the window has entered the root window, and that
may cause the wrong cursor to be applied.

To avoid the issue, change the order we do things, by calling
CheckMotion() first prior to clear up the internal focus window so that
the first call to XYToWindow() will return the correct X11 window so we
get to update the cursor correctly.

Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1811
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1915>
2025-05-16 10:02:53 +00:00
..
kdrive kdrive: Xkdrive.man: remove stray whitespace 2025-04-02 00:54:31 +00:00
vfb man pages: use .BR to mark up man page references 2025-03-29 13:36:54 -07:00
xfree86 modesetting: fix typo in XF86ModuleVersionInfo initialization 2025-04-19 17:02:15 +00:00
xnest Xnest: use authorative declarations from X11/XKBlib.h 2025-02-28 17:27:05 +00:00
xquartz man pages: use .BR to mark up man page references 2025-03-29 13:36:54 -07:00
xwayland xwayland: Update sprite prior to clearing the focus window 2025-05-16 10:02:53 +00:00
xwin man pages: use .BR to mark up man page references 2025-03-29 13:36:54 -07:00
meson.build meson.build: print a summary of the DDX to build 2025-03-24 03:05:35 +00:00