On the topic of how convey the raw/wnd input origin information.
Currently I use flags passed through __wine_send_input / send_hardware_message. Regardless of their name or meaning, I feel it may not be the rightest way to do it.
Instead, I'm thinking or decoupling the server hw_input_t type flags from the user32 INPUT structure type flags, and use some internal flags instead -that would be used to support HID rawinput as well [1]- to provide the nature of the input (raw, window, both).
Then, as __wine_send_input only exposes the INPUT structure, instead of going through some translation in user32, the graphics drivers could do the send_hardware_message request directly, filling the hw_input_t structure themselves with all the custom information we need, and we could get rid of this internal function.
Would that go more in the right direction, or is it too much of a change to be acceptable?
[1] https://source.winehq.org/patches/data/171760