All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Baboval <baboval@spineless.org>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC PATCH 11/15] input: mouse: add graphic_rotate support
Date: Mon, 02 Dec 2013 14:00:59 -0500	[thread overview]
Message-ID: <529CD8EB.5030403@spineless.org> (raw)
In-Reply-To: <1385649010-7034-12-git-send-email-kraxel@redhat.com>

I'm not sure this is correct. Generally when the display gets rotated, 
the input device coordinates do not, and the in-guest code handles the math.

On 11/28/2013 09:30 AM, Gerd Hoffmann wrote:
> Transform absolute mouse events according to graphic_rotate.
>
> Legacy input code does it for both absolute and relative events,
> but the logic is broken for relative coordinates, so this is
> most likely not used anyway.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>   ui/input.c | 33 +++++++++++++++++++++++++++++++++
>   1 file changed, 33 insertions(+)
>
> diff --git a/ui/input.c b/ui/input.c
> index fa6d677..abfe3a3 100644
> --- a/ui/input.c
> +++ b/ui/input.c
> @@ -50,6 +50,33 @@ qemu_input_find_handler(uint32_t mask)
>       return NULL;
>   }
>   
> +static void qemu_input_transform_abs_rotate(InputEvent *evt)
> +{
> +    switch (graphic_rotate) {
> +    case 90:
> +        if (evt->abs->axis == INPUT_AXIS_X) {
> +            evt->abs->axis = INPUT_AXIS_Y;
> +        }
> +        if (evt->abs->axis == INPUT_AXIS_Y) {
> +            evt->abs->axis = INPUT_AXIS_X;
> +            evt->abs->axis = INPUT_EVENT_ABS_SIZE - 1 - evt->abs->axis;
> +        }
> +        break;
> +    case 180:
> +        evt->abs->axis = INPUT_EVENT_ABS_SIZE - 1 - evt->abs->axis;
> +        break;
> +    case 270:
> +        if (evt->abs->axis == INPUT_AXIS_X) {
> +            evt->abs->axis = INPUT_AXIS_Y;
> +            evt->abs->axis = INPUT_EVENT_ABS_SIZE - 1 - evt->abs->axis;
> +        }
> +        if (evt->abs->axis == INPUT_AXIS_Y) {
> +            evt->abs->axis = INPUT_AXIS_X;
> +        }
> +        break;
> +    }
> +}
> +
>   void qemu_input_event_send(QemuConsole *src, InputEvent *evt)
>   {
>       QemuInputHandlerState *s;
> @@ -58,6 +85,12 @@ void qemu_input_event_send(QemuConsole *src, InputEvent *evt)
>           return;
>       }
>   
> +    /* pre processing */
> +    if (graphic_rotate && (evt->kind == INPUT_EVENT_KIND_ABS)) {
> +            qemu_input_transform_abs_rotate(evt);
> +    }
> +
> +    /* send event */
>       s = qemu_input_find_handler(1 << evt->kind);
>       s->handler->event(s->dev, src, evt);
>       s->events++;

  reply	other threads:[~2013-12-02 19:01 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-28 14:29 [Qemu-devel] [RFC PATCH 00/15] input: rewrite qemu input layer Gerd Hoffmann
2013-11-28 14:29 ` [Qemu-devel] [RFC PATCH 01/15] console: export QemuConsole index, width, height Gerd Hoffmann
2013-11-28 14:29 ` [Qemu-devel] [RFC PATCH 02/15] input: rename file to legacy Gerd Hoffmann
2013-11-28 14:29 ` [Qemu-devel] [RFC PATCH 03/15] input: define event types using qapi Gerd Hoffmann
2013-12-02 19:12   ` Eric Blake
2013-12-03  8:11     ` Gerd Hoffmann
2013-11-28 14:29 ` [Qemu-devel] [RFC PATCH 04/15] input: add core bits of the new input layer Gerd Hoffmann
2013-11-28 14:30 ` [Qemu-devel] [RFC PATCH 05/15] input: keyboard: add helper functions to core Gerd Hoffmann
2013-11-28 14:30 ` [Qemu-devel] [RFC PATCH 06/15] input: keyboard: switch legacy handlers to new core Gerd Hoffmann
2013-11-28 14:30 ` [Qemu-devel] [RFC PATCH 07/15] input: keyboard: switch qmp_send_key() " Gerd Hoffmann
2013-11-28 14:30 ` [Qemu-devel] [RFC PATCH 08/15] input: keyboard: switch gtk ui " Gerd Hoffmann
2013-11-28 14:30 ` [Qemu-devel] [RFC PATCH 09/15] input: keyboard: switch sdl ui to new core [wip] Gerd Hoffmann
2013-11-28 14:30 ` [Qemu-devel] [RFC PATCH 10/15] input: mouse: add helpers functions to core Gerd Hoffmann
2013-11-28 14:30 ` [Qemu-devel] [RFC PATCH 11/15] input: mouse: add graphic_rotate support Gerd Hoffmann
2013-12-02 19:00   ` John Baboval [this message]
2013-12-03  8:58     ` Gerd Hoffmann
2013-11-28 14:30 ` [Qemu-devel] [RFC PATCH 12/15] input: mouse: add qemu_input_is_absolute() Gerd Hoffmann
2013-12-02 19:05   ` John Baboval
2013-11-28 14:30 ` [Qemu-devel] [RFC PATCH 13/15] input: mouse: switch legacy handlers to new core Gerd Hoffmann
2013-11-28 14:30 ` [Qemu-devel] [RFC PATCH 14/15] input: mouse: switch gtk ui " Gerd Hoffmann
2013-11-28 14:30 ` [Qemu-devel] [RFC PATCH 15/15] input: mouse: switch sdl " Gerd Hoffmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=529CD8EB.5030403@spineless.org \
    --to=baboval@spineless.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.