* [Qemu-devel] [PATCH 0/2] sdl2: Fix relative mouse mode
@ 2014-04-01 20:37 Cole Robinson
2014-04-01 20:37 ` [Qemu-devel] [PATCH 1/2] input: sdl2: Fix guest_cursor logic Cole Robinson
2014-04-01 20:37 ` [Qemu-devel] [RFC PATCH 2/2] input: sdl2: Fix relative mode to match SDL1 behavior Cole Robinson
0 siblings, 2 replies; 3+ messages in thread
From: Cole Robinson @ 2014-04-01 20:37 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson
sdl.c received a fix for relative mouse mode, but it wasn't copied to
sdl2.c.
Patch #2 uses new SDL2 API to make relative mode behave similar to sdl.c,
but I'm not fully confident that it's safe. See patch comments.
Also, relative mode is a mess in gtk as well. I started fixing these only
to find that patches were already posted:
https://lists.gnu.org/archive/html/qemu-devel/2014-02/msg02278.html
Cole Robinson (2):
input: sdl2: Fix guest_cursor logic
input: sdl2: Fix relative mode to match SDL1 behavior
ui/sdl2.c | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
--
1.9.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Qemu-devel] [PATCH 1/2] input: sdl2: Fix guest_cursor logic
2014-04-01 20:37 [Qemu-devel] [PATCH 0/2] sdl2: Fix relative mouse mode Cole Robinson
@ 2014-04-01 20:37 ` Cole Robinson
2014-04-01 20:37 ` [Qemu-devel] [RFC PATCH 2/2] input: sdl2: Fix relative mode to match SDL1 behavior Cole Robinson
1 sibling, 0 replies; 3+ messages in thread
From: Cole Robinson @ 2014-04-01 20:37 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson
Unbreaks relative mouse mode with sdl2, just like was done with sdl.c
in c3aa84b6.
Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
ui/sdl2.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/ui/sdl2.c b/ui/sdl2.c
index f1532e9..e4cb9fb 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -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();
}
--
1.9.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Qemu-devel] [RFC PATCH 2/2] input: sdl2: Fix relative mode to match SDL1 behavior
2014-04-01 20:37 [Qemu-devel] [PATCH 0/2] sdl2: Fix relative mouse mode Cole Robinson
2014-04-01 20:37 ` [Qemu-devel] [PATCH 1/2] input: sdl2: Fix guest_cursor logic Cole Robinson
@ 2014-04-01 20:37 ` Cole Robinson
1 sibling, 0 replies; 3+ messages in thread
From: Cole Robinson @ 2014-04-01 20:37 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann, Cole Robinson
Right now relative mode accelerates too fast, and has the 'invisible wall'
problem. SDL2 added an explicit API to handle this use case, so let's use
it.
Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
While this fixes things for me, I'm not positive it doesn't have other
side effects. I didn't test transition from relative mode to absolute
mode and back, which might hit issues.
ui/sdl2.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/ui/sdl2.c b/ui/sdl2.c
index e4cb9fb..7506e2e 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -278,7 +278,7 @@ static void sdl_hide_cursor(void)
SDL_ShowCursor(1);
SDL_SetCursor(sdl_cursor_hidden);
} else {
- SDL_ShowCursor(0);
+ SDL_SetRelativeMouseMode(SDL_TRUE);
}
}
@@ -289,6 +289,7 @@ static void sdl_show_cursor(void)
}
if (!qemu_input_is_absolute()) {
+ SDL_SetRelativeMouseMode(SDL_FALSE);
SDL_ShowCursor(1);
if (guest_cursor &&
(gui_grab || qemu_input_is_absolute() || absolute_enabled)) {
--
1.9.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-04-01 20:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-01 20:37 [Qemu-devel] [PATCH 0/2] sdl2: Fix relative mouse mode Cole Robinson
2014-04-01 20:37 ` [Qemu-devel] [PATCH 1/2] input: sdl2: Fix guest_cursor logic Cole Robinson
2014-04-01 20:37 ` [Qemu-devel] [RFC PATCH 2/2] input: sdl2: Fix relative mode to match SDL1 behavior Cole Robinson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).