From c53ddb5acbee56db6423f369b9f9a9b62501b4af Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Wed, 18 Sep 2013 14:04:54 +0100
Subject: [PATCH] sdl.c: allow user to disable pointer grabs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When the pointer enters the Qemu window it calls SDL_WM_GrabInput, which calls
XGrabPointer in a busyloop until it returns GrabSuccess. However if there's already
a pointer grab (screen is locked, a menu is open) then qemu will hang until the
grab can be taken.  In the specific case of a headless X server on an autobuilder, once
the screensaver has kicked in any qemu instance that appears underneath the
pointer will hang.

I'm not entirely sure why pointer grabs are required (the documentation
explicitly says it doesn't do grabs when using a tablet, which we are) so wrap
them in a conditional that can be set by the autobuilder environment, preserving
the current grabbing behaviour for everyone else.

Upstream-Status: Pending
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Eric Bénard <eric@eukrea.com>

---
 ui/sdl.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/ui/sdl.c b/ui/sdl.c
index 190b16f5..aa89471d 100644
--- a/ui/sdl.c
+++ b/ui/sdl.c
@@ -69,6 +69,11 @@ static int idle_counter;
 static const guint16 *keycode_map;
 static size_t keycode_maplen;
 
+#ifndef True
+#define True 1
+#endif
+static doing_grabs = True;
+
 #define SDL_REFRESH_INTERVAL_BUSY 10
 #define SDL_MAX_IDLE_COUNT (2 * GUI_REFRESH_INTERVAL_DEFAULT \
                             / SDL_REFRESH_INTERVAL_BUSY + 1)
@@ -399,14 +404,16 @@ static void sdl_grab_start(void)
         }
     } else
         sdl_hide_cursor();
-    SDL_WM_GrabInput(SDL_GRAB_ON);
+    if (doing_grabs)
+      SDL_WM_GrabInput(SDL_GRAB_ON);
     gui_grab = 1;
     sdl_update_caption();
 }
 
 static void sdl_grab_end(void)
 {
-    SDL_WM_GrabInput(SDL_GRAB_OFF);
+    if (doing_grabs)
+      SDL_WM_GrabInput(SDL_GRAB_OFF);
     gui_grab = 0;
     sdl_show_cursor();
     sdl_update_caption();
@@ -945,6 +952,8 @@ static void sdl1_display_init(DisplayState *ds, DisplayOptions *o)
      * This requires SDL >= 1.2.14. */
     setenv("SDL_DISABLE_LOCK_KEYS", "1", 1);
 
+    doing_grabs = (getenv("QEMU_DONT_GRAB") == NULL);
+
     flags = SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE;
     if (SDL_Init (flags)) {
         fprintf(stderr, "Could not initialize SDL(%s) - exiting\n",
