* [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.