Rémi Bernon (@rbernon) commented about dlls/winewayland.drv/wayland_pointer.c:
frame->dx -= input.mi.dx; frame->dy -= input.mi.dy; if (input.mi.dx != 0 || input.mi.dy != 0) - NtUserSendHardwareInput(hwnd, 0, &input, 0); + NtUserSendHardwareInput(hwnd, SEND_HWMSG_NO_RAW, &input, 0); + + input.mi.dx = round(frame->dx_raw); + input.mi.dy = round(frame->dy_raw); + frame->dx_raw -= input.mi.dx; + frame->dy_raw -= input.mi.dy; + if (input.mi.dx != 0 || input.mi.dy != 0) + NtUserSendHardwareInput(hwnd, SEND_HWMSG_NO_MSG, &input, 0); }
Fwiw review might take a bit of time, I'm trying to find a better way than spamming wineserver with requests when both raw/non-raw input is to be sent. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/11117#note_143111