4083c839
by Zakaria Habri at 2026-05-11T14:50:36+02:00
winewayland: Use wp_pointer_warp_v1 for SetCursorPos when available.
The existing implementation abuses zwp_locked_pointer_v1's
set_cursor_position_hint side effect: it briefly locks the pointer,
sets the hint, then unlocks. The compositor clamps the position
hint to locked-surface bounds, so warps targeted outside that area
are silently dropped, and the lock/unlock cycle has subtle side
effects.
wp_pointer_warp_v1 (staging in wayland-protocols 1.45) provides a
direct primitive that does not require pointer locking. When the
compositor advertises the global and we have a recent enter serial,
prefer it; otherwise fall back to the existing workaround.