This is a rebase/resend of:
https://www.winehq.org/pipermail/wine-devel/2019-September/151347.html
It should fix several issues related to mouse cursor position sometimes jumping around in some games as well as improving the performance with high polling rate mouses by avoiding a rountrip to the server in the dinput8 implementation.
The first patches are in common with the HID rawinput implementation patches that have been previously sent here:
https://www.winehq.org/pipermail/wine-devel/2019-October/152735.html
Rémi Bernon (9): server: Add send_hardware_message flags for rawinput translation. server: Implement rawinput hardware message broadcast. user32: Add __wine_send_input flags to hint raw input translation. user32: Add support for RIDEV_INPUTSINK flag in RegisterRawInputDevices. user32: Implement GetRegisteredRawInputDevices. dinput8: Add support for dinput devices that use raw input interface. dinput8: Use raw input interface for dinput8 mouse device. winex11.drv: Advertise XInput2 version 2.1 support. winex11.drv: Listen to RawMotion and RawButton* events in the desktop thread.
dlls/dinput/device_private.h | 3 + dlls/dinput/dinput_main.c | 84 +++++++++++++++++++- dlls/dinput/mouse.c | 117 ++++++++++++++++++++++++++- dlls/dinput8/tests/device.c | 23 +----- dlls/user32/input.c | 4 +- dlls/user32/rawinput.c | 64 ++++++++++++++- dlls/user32/tests/rawinput.c | 2 - dlls/user32/user32.spec | 2 +- dlls/wineandroid.drv/keyboard.c | 2 +- dlls/wineandroid.drv/window.c | 4 +- dlls/winemac.drv/ime.c | 4 +- dlls/winemac.drv/keyboard.c | 2 +- dlls/winemac.drv/mouse.c | 2 +- dlls/winex11.drv/event.c | 10 ++- dlls/winex11.drv/keyboard.c | 2 +- dlls/winex11.drv/mouse.c | 128 +++++++++++++++++------------- dlls/winex11.drv/x11drv.h | 6 +- dlls/winex11.drv/x11drv_main.c | 4 + include/winuser.h | 2 +- server/protocol.def | 9 +++ server/queue.c | 135 ++++++++++++++++++++++++++------ 21 files changed, 489 insertions(+), 120 deletions(-)
-- 2.24.0.rc2