From: Attila Fidan dev@print0.net
If ClipCursor is called while the seat doesn't have a pointer and the call qualifies for locking the pointer, it would have tried to lock a null wl_pointer. --- dlls/winewayland.drv/wayland_pointer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/winewayland.drv/wayland_pointer.c b/dlls/winewayland.drv/wayland_pointer.c index 6c852292c1d..509301cada4 100644 --- a/dlls/winewayland.drv/wayland_pointer.c +++ b/dlls/winewayland.drv/wayland_pointer.c @@ -688,9 +688,10 @@ static void wayland_pointer_update_constraint(struct wl_surface *wl_surface, }
needs_lock = wl_surface && (((confine_rect || covers_vscreen) && - !pointer->cursor.wl_surface) || force_lock); + !pointer->cursor.wl_surface) || force_lock) && + pointer->wl_pointer; needs_confine = wl_surface && confine_rect && pointer->cursor.wl_surface && - !force_lock; + !force_lock && pointer->wl_pointer;
if (!needs_confine && pointer->zwp_confined_pointer_v1) {