xserver/hw
Olivier Fourdan 11068cd3cd xwayland: Check for pointer caps on lock / warp / confine
The pointer locking protocol relies on the wl_pointer, if the pointer
capability was lost, the wl_pointer is NULL.

In that case, trying to use the pointer locking, either to emulate a
lock or a pointer warp, will lead to Wayland protocol error which is
fatal to Xwayland.

To avoid that issue, make sure we (still) have a wl_pointer available
before trying to lock or warp the pointer.

If not, record the last window and coordinate from the request and
resubmit the request as soon as the wl_pointer is restored.

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Suggested-by: Michel Dänzer <michel@daenzer.net>
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1829
2025-09-16 14:01:04 +02:00
..
kdrive Revert "os: unexport Os*() functions" 2025-07-20 12:41:06 -07:00
vfb Revert "os: unexport Os*() functions" 2025-07-20 12:41:06 -07:00
xfree86 Revert "dix: unexport cursor refcounting functions" 2025-09-06 17:01:39 +00:00
xnest Revert "dix: unexport NewCurrentScreen()" 2025-09-06 17:01:37 +00:00
xquartz Revert "os: unexport Os*() functions" 2025-07-20 12:41:06 -07:00
xwayland xwayland: Check for pointer caps on lock / warp / confine 2025-09-16 14:01:04 +02:00
xwin Revert "os: unexport Os*() functions" 2025-07-20 12:41:06 -07:00
meson.build meson.build: print a summary of the DDX to build 2025-03-24 03:05:35 +00:00