diff options
author | Cole Robinson <crobinso@redhat.com> | 2014-04-01 16:37:10 -0400 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2014-04-11 12:19:16 +0200 |
commit | afbc0dd649809b34583c52f2bc99b5c82c06fd53 (patch) | |
tree | e475da19d9d5941ef52fd99a5dcfacfc3fdd523d | |
parent | f516a5cc051db6e999e9e60dc968dcb5aeffe11f (diff) |
input: sdl2: Fix guest_cursor logic
Unbreaks relative mouse mode with sdl2, just like was done with sdl.c
in c3aa84b6.
Signed-off-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r-- | ui/sdl2.c | 18 |
1 files changed, 11 insertions, 7 deletions
@@ -403,13 +403,17 @@ static void sdl_send_mouse_event(struct sdl2_state *scon, int dx, int dy, } qemu_input_queue_abs(scon->dcl.con, INPUT_AXIS_X, off_x + x, max_w); qemu_input_queue_abs(scon->dcl.con, INPUT_AXIS_Y, off_y + y, max_h); - } else if (guest_cursor) { - x -= guest_x; - y -= guest_y; - guest_x += x; - guest_y += y; - qemu_input_queue_rel(scon->dcl.con, INPUT_AXIS_X, x); - qemu_input_queue_rel(scon->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(scon->dcl.con, INPUT_AXIS_X, dx); + qemu_input_queue_rel(scon->dcl.con, INPUT_AXIS_Y, dy); } qemu_input_event_sync(); } |