Hi Folks!

IMHO the idea behind the grab/mouse hide was to
have relative mouse moves inside the window when
the mouse is grabbed ...

now the SDL documentation SDL_MouseMotionEvent(3)
says the following:

If the cursor is hidden (SDL_ShowCursor(0)) and the 
input is grabbed (SDL_WM_GrabInput(SDL_GRAB_ON)),
then the mouse will give relative motion events 
even when the cursor reaches the edge fo the screen.

which is almost met, except for qemu _not_ using
the SDL_ShowCursor() but instead doing a special
SDL_SetCursor(sdl_cursor_hidden), which results in
SDL _not_ transmitting the relative motion events
once the border is reached, which in turn gives
funny behaviour :)

the following patch fixes this:


diff -NurpP qemu-cvs20060522/sdl.c qemu-cvs20060522/sdl.c
--- qemu-cvs20060522/sdl.c      2006-05-23 01:18:33.000000000 +0200
+++ qemu-cvs20060522/sdl.c      2006-05-23 03:03:19.000000000 +0200
@@ -285,13 +285,13 @@ static void sdl_update_caption(void)
 
 static void sdl_hide_cursor(void)
 {
-    SDL_SetCursor(sdl_cursor_hidden);
+    SDL_ShowCursor(0);
 }
 
 static void sdl_show_cursor(void)
 {
     if (!kbd_mouse_is_absolute()) {
-       SDL_SetCursor(sdl_cursor_normal);
+       SDL_ShowCursor(1);
     }
 }
 

best,
Herbert



_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to