[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RESEND PATCH] hw/i386/vmmouse:add relative packet flag for button s
From: |
Marc-André Lureau |
Subject: |
Re: [RESEND PATCH] hw/i386/vmmouse:add relative packet flag for button status |
Date: |
Tue, 1 Aug 2023 13:38:13 +0400 |
On Tue, Aug 1, 2023 at 9:45 AM Zongmin Zhou <zhouzongmin@kylinos.cn> wrote:
>
> The buttons value use macros instead of direct numbers.
>
> If request relative mode, have to add this for
> guest vmmouse driver to judge this is a relative packet.
> otherwise,vmmouse driver will not match
> the condition 'status & VMMOUSE_RELATIVE_PACKET',
> and can't report events on the correct(relative) input device,
> result to relative mode unuseful.
>
> Signed-off-by: Zongmin Zhou<zhouzongmin@kylinos.cn>
> ---
> hw/i386/vmmouse.c | 15 ++++++++++++---
> 1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c
> index a56c185f15..6cd624bd09 100644
> --- a/hw/i386/vmmouse.c
> +++ b/hw/i386/vmmouse.c
> @@ -44,6 +44,12 @@
>
> #define VMMOUSE_VERSION 0x3442554a
>
> +#define VMMOUSE_RELATIVE_PACKET 0x00010000
> +
> +#define VMMOUSE_LEFT_BUTTON 0x20
> +#define VMMOUSE_RIGHT_BUTTON 0x10
> +#define VMMOUSE_MIDDLE_BUTTON 0x08
> +
> #ifdef DEBUG_VMMOUSE
> #define DPRINTF(fmt, ...) printf(fmt, ## __VA_ARGS__)
> #else
> @@ -103,15 +109,18 @@ static void vmmouse_mouse_event(void *opaque, int x,
> int y, int dz, int buttons_
> x, y, dz, buttons_state);
>
> if ((buttons_state & MOUSE_EVENT_LBUTTON))
> - buttons |= 0x20;
> + buttons |= VMMOUSE_LEFT_BUTTON;
> if ((buttons_state & MOUSE_EVENT_RBUTTON))
> - buttons |= 0x10;
> + buttons |= VMMOUSE_RIGHT_BUTTON;
> if ((buttons_state & MOUSE_EVENT_MBUTTON))
> - buttons |= 0x08;
> + buttons |= VMMOUSE_MIDDLE_BUTTON;
>
> if (s->absolute) {
> x <<= 1;
> y <<= 1;
> + } else{
> + /* add for guest vmmouse driver to judge this is a relative packet.
> */
> + buttons |= VMMOUSE_RELATIVE_PACKET;
> }
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> s->queue[s->nb_queue++] = buttons;
> --
> 2.34.1
>
>
--
Marc-André Lureau