From: Etaash Mathamsetty <etaash.mathamsetty@gmail.com> --- dlls/winewayland.drv/wayland_pointer.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dlls/winewayland.drv/wayland_pointer.c b/dlls/winewayland.drv/wayland_pointer.c index d7cdd87ed84..b0058f04ba2 100644 --- a/dlls/winewayland.drv/wayland_pointer.c +++ b/dlls/winewayland.drv/wayland_pointer.c @@ -1146,7 +1146,11 @@ BOOL WAYLAND_ClipCursor(const RECT *clip, BOOL reset) pointer->pending_warp = FALSE; } - if (wl_surface && hwnd == pointer->constraint_hwnd && pointer->zwp_locked_pointer_v1) + /* according to protocol spec, the position hints only do something + * when transitioning from locked to unlocked states */ + if (wl_surface && hwnd == pointer->constraint_hwnd && + pointer->zwp_locked_pointer_v1 && + (pointer->cursor.wl_surface || pointer->wp_cursor_shape_device_v1)) { zwp_locked_pointer_v1_set_cursor_position_hint( pointer->zwp_locked_pointer_v1, -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11117