All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 2 of 2] sdl hide pointer when not in focus
@ 2008-11-04 18:36 Stefano Stabellini
  2008-11-04 19:11 ` Anthony Liguori
  0 siblings, 1 reply; 2+ messages in thread
From: Stefano Stabellini @ 2008-11-04 18:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Ian Jackson

Hide the mouse pointer when the sdl window is not in focus.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

diff -r e42ba25a7313 sdl.c
--- a/sdl.c	Tue Nov 04 18:11:03 2008 +0000
+++ b/sdl.c	Tue Nov 04 18:11:23 2008 +0000
@@ -50,6 +50,7 @@
 static int guest_cursor = 0;
 static int guest_x, guest_y;
 static SDL_Cursor *guest_sprite = 0;
+static int mouse_active = SDL_ENABLE;
 
 static void sdl_update(DisplayState *ds, int x, int y, int w, int h)
 {
@@ -514,7 +515,8 @@
                         dz = 1;
                     }
 #endif
-                    sdl_send_mouse_event(0, 0, dz, bev->x, bev->y, buttonstate);
+                    if (mouse_active == SDL_ENABLE)
+                        sdl_send_mouse_event(0, 0, dz, bev->x, bev->y, buttonstate);
                 }
             }
             break;
@@ -522,6 +524,14 @@
             if (gui_grab && ev->active.state == SDL_APPINPUTFOCUS &&
                 !ev->active.gain && !gui_fullscreen_initial_grab) {
                 sdl_grab_end();
+            }
+            /* Send mouse pointer to oblivion on focus change */
+            if ((ev->active.state == SDL_APPINPUTFOCUS) ||
+                (ev->active.state == SDL_APPMOUSEFOCUS))
+            {
+                mouse_active = ev->active.gain;
+                if (mouse_active != SDL_ENABLE)
+                    kbd_mouse_event(0x7FFF, 0x7FFF, 0, 0);
             }
             if (ev->active.state & SDL_APPACTIVE) {
                 if (ev->active.gain) {

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Qemu-devel] [PATCH 2 of 2] sdl hide pointer when not in focus
  2008-11-04 18:36 [Qemu-devel] [PATCH 2 of 2] sdl hide pointer when not in focus Stefano Stabellini
@ 2008-11-04 19:11 ` Anthony Liguori
  0 siblings, 0 replies; 2+ messages in thread
From: Anthony Liguori @ 2008-11-04 19:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: Ian Jackson

Stefano Stabellini wrote:
> Hide the mouse pointer when the sdl window is not in focus.
>   

I don't fully grok how this makes things better.  This seems like a 
nasty little hack too.  When you leave the window, the mouse disappears 
into one side of the screen, and when you come back, you have to move to 
where ever you were previously.

I understand how this could be useful with -no-grab, but this would 
defeat the sort of behavior that I commonly rely on when using grab 
(ungrab with a mouse in a convenient place, then come back and click on 
a button).

What's the user experience you are aiming for here?

Regards,

Anthony Liguori

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-11-04 19:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-04 18:36 [Qemu-devel] [PATCH 2 of 2] sdl hide pointer when not in focus Stefano Stabellini
2008-11-04 19:11 ` Anthony Liguori

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.