Rémi Bernon (@rbernon) commented about dlls/winewayland.drv/wayland_pointer.c:
+ +static void pointer_unlock_surface(void) +{ + pthread_mutex_unlock(&process_wayland.pointer.surface->mutex); + pthread_mutex_unlock(&process_wayland.pointer.mutex); +} + static void pointer_handle_motion(void *data, struct wl_pointer *wl_pointer, uint32_t time, wl_fixed_t sx, wl_fixed_t sy) { + INPUT input = {0}; + RECT window_rect; + struct wayland_surface *surface; + int screen_x, screen_y; + + if (!(surface = pointer_lock_surface())) return; We get `enter, motion*, leave` sequences, can we instead assume that the hwnd under the cursor stays the same?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/3686#note_43875