diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-06-13 12:03:53 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-06-13 12:03:53 +0000 |
commit | c66b0d4cf4ef84325d3f579c0e3ea5254d7b348a (patch) | |
tree | 12438420729bc667cf36528435bfd057370bf378 /sdl.c | |
parent | 8785a8ddcc6e772d82744279447bb9541da5a407 (diff) | |
download | qemu-c66b0d4cf4ef84325d3f579c0e3ea5254d7b348a.tar.gz qemu-c66b0d4cf4ef84325d3f579c0e3ea5254d7b348a.tar.bz2 qemu-c66b0d4cf4ef84325d3f579c0e3ea5254d7b348a.zip |
avoid stopping QEMU when switching desktops with Ctrl-Alt-x
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1954 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'sdl.c')
-rw-r--r-- | sdl.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -447,10 +447,18 @@ static void sdl_refresh(DisplayState *ds) gui_key_modifier_pressed = 0; if (gui_keysym == 0) { /* exit/enter grab if pressing Ctrl-Alt */ - if (!gui_grab) - sdl_grab_start(); - else + if (!gui_grab) { + /* if the application is not active, + do not try to enter grab state. It + prevents + 'SDL_WM_GrabInput(SDL_GRAB_ON)' + from blocking all the application + (SDL bug). */ + if (SDL_GetAppState() & SDL_APPACTIVE) + sdl_grab_start(); + } else { sdl_grab_end(); + } /* SDL does not send back all the modifiers key, so we must correct it */ reset_keys(); |