Yeah I'm not sure whether they should be merged either, I think it comes down to preference.  Maybe Vincent or Alexandre should decide.

About using the union in hardware_msg_data, you're right, I didn't notice that and I'll deduplicate that.

On Tue, Jul 23, 2019 at 3:50 AM Rémi Bernon <rbernon@codeweavers.com> wrote:
On Sat, 2019-06-29 at 22:26 -0400, Derek Lesho wrote:
> Signed-off-by: Derek Lesho <dereklesho52@Gmail.com>
> ---
>  server/protocol.def | 28 ++++++++++++++++++++++++++++
>  server/queue.c      | 41 +++++++++++++++++++++++++++++++++++++++++
>  server/trace.c      | 21 +++++++++++++++++++++
>  tools/make_requests |  1 +
>  4 files changed, 91 insertions(+)
>
> diff --git a/server/protocol.def b/server/protocol.def
> index 8b8a8a1512..3a6a202f49 100644
> --- a/server/protocol.def
> +++ b/server/protocol.def
> @@ -358,6 +358,29 @@ typedef union
>      } hw;
>  } hw_input_t;

> +typedef union
> +{
> +    int type;
> +    struct
> +    {
> +        int type;                     /* RIM_TYPEMOUSE */
> +        int x;                        /* relative x movement */
> +        int y;                        /* relative y movement */
> +        unsigned short button_flags;  /* mouse button */
> +        unsigned short button_data;   /* event details */
> +    } mouse;
> +    struct
> +    {
> +        int type; /* RIM_TYPEKEYBOARD */
> +        /* TODO: fill this in if/when necessary */
> +    } kbd;
> +    struct
> +    {
> +        int type; /* RIM_TYPEHID */
> +        /* TODO: fill this in if/when necessary */
> +    } hid;
> +} hw_rawinput_t;

I'm still wondering if it should be merged with hw_input_t or not and
use the same send_hardware_message request for raw inputs and normal
inputs, but in any case this union should at least be used for the
rawinput field in struct hardware_msg_data (with the kbd fields added)
instead of duplicating it.
--
Rémi Bernon <rbernon@codeweavers.com>