diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2014-03-11 12:52:08 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2014-03-11 12:52:08 +0000 |
commit | c57ec3249e9839c7ea2e3789f6e40f9ec1c92f55 (patch) | |
tree | 012e65e0b2aefb31098924b6948cc3a057982715 | |
parent | fe6c53b4bbd2e83f82087bc5e37daa11ffc65879 (diff) | |
parent | dbb2a1326a7af6159861d3d7976c251a15ce0f92 (diff) |
Merge remote-tracking branch 'remotes/kraxel/tags/pull-input-5' into staging
input: fixes for the rewrite.
# gpg: Signature made Mon 10 Mar 2014 12:50:25 GMT using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
# gpg: aka "Gerd Hoffmann <gerd@kraxel.org>"
# gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>"
* remotes/kraxel/tags/pull-input-5:
input: map INPUT_BUTTON_WHEEL_{UP,DOWN} to legacy input z axis moves.
input: sdl: fix guest_cursor logic.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r-- | ui/input-legacy.c | 14 | ||||
-rw-r--r-- | ui/sdl.c | 18 |
2 files changed, 25 insertions, 7 deletions
diff --git a/ui/input-legacy.c b/ui/input-legacy.c index f38984b192..7dc486b8ac 100644 --- a/ui/input-legacy.c +++ b/ui/input-legacy.c @@ -359,6 +359,20 @@ static void legacy_mouse_event(DeviceState *dev, QemuConsole *src, } else { s->buttons &= ~bmap[evt->btn->button]; } + if (evt->btn->down && evt->btn->button == INPUT_BUTTON_WHEEL_UP) { + s->qemu_put_mouse_event(s->qemu_put_mouse_event_opaque, + s->axis[INPUT_AXIS_X], + s->axis[INPUT_AXIS_Y], + -1, + s->buttons); + } + if (evt->btn->down && evt->btn->button == INPUT_BUTTON_WHEEL_DOWN) { + s->qemu_put_mouse_event(s->qemu_put_mouse_event_opaque, + s->axis[INPUT_AXIS_X], + s->axis[INPUT_AXIS_Y], + 1, + s->buttons); + } break; case INPUT_EVENT_KIND_ABS: s->axis[evt->abs->axis] = evt->abs->value; @@ -455,13 +455,17 @@ static void sdl_send_mouse_event(int dx, int dy, int x, int y, int state) real_screen->w); qemu_input_queue_abs(dcl->con, INPUT_AXIS_Y, y, real_screen->h); - } else if (guest_cursor) { - x -= guest_x; - y -= guest_y; - guest_x += x; - guest_y += y; - qemu_input_queue_rel(dcl->con, INPUT_AXIS_X, x); - qemu_input_queue_rel(dcl->con, INPUT_AXIS_Y, y); + } else { + if (guest_cursor) { + x -= guest_x; + y -= guest_y; + guest_x += x; + guest_y += y; + dx = x; + dy = y; + } + qemu_input_queue_rel(dcl->con, INPUT_AXIS_X, dx); + qemu_input_queue_rel(dcl->con, INPUT_AXIS_Y, dy); } qemu_input_event_sync(); } |