Xwayland has its own XYToWindow() handler to account for the case when the pointer leaves an X11 surface to enter another Wayland native window. 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, if we left the surface with a button down, it means the wayland compositor has grabbed the pointer so we will not get button release events from the compositor. Once the button is released, Xwayland will get a pointer enter event from the compositor, and Xwayland will clear up the buttons pressed. But that might confuse Xwayland in thinking the pointer has crossed the windows and leave the wrong cursor showing in the X11 surface. To avoid the issue, if buttons are down, do not pretend the cursor has left the X11 surface for the root window. 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/2008> |
||
---|---|---|
.. | ||
kdrive | ||
vfb | ||
xfree86 | ||
xnest | ||
xquartz | ||
xwayland | ||
xwin | ||
meson.build |