From 5b31187812694ef575c20fc3fe3123685a306fde Mon Sep 17 00:00:00 2001 From: pbrook Date: Sat, 11 Mar 2006 20:07:45 +0000 Subject: Make sure gui_key_modifier_pressed is cleared correctly. Use correct event fields for SDL_ACTIVEEVENT. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1780 c046a42c-6fe2-441c-8c8c-71466251a162 --- sdl.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'sdl.c') diff --git a/sdl.c b/sdl.c index 9c7afd907c..d53f3e957e 100644 --- a/sdl.c +++ b/sdl.c @@ -404,6 +404,7 @@ static void sdl_refresh(DisplayState *ds) mod_state = (ev->key.keysym.mod & gui_grab_code); if (!mod_state) { if (gui_key_modifier_pressed) { + gui_key_modifier_pressed = 0; if (gui_keysym == 0) { /* exit/enter grab if pressing Ctrl-Alt */ if (!gui_grab) @@ -415,7 +416,6 @@ static void sdl_refresh(DisplayState *ds) reset_keys(); break; } - gui_key_modifier_pressed = 0; gui_keysym = 0; } } @@ -456,8 +456,8 @@ static void sdl_refresh(DisplayState *ds) } break; case SDL_ACTIVEEVENT: - if (gui_grab && (ev->active.gain & SDL_ACTIVEEVENTMASK) == 0 && - !gui_fullscreen_initial_grab) { + if (gui_grab && ev->active.state == SDL_APPINPUTFOCUS && + !ev->active.gain && !gui_fullscreen_initial_grab) { sdl_grab_end(); } break; -- cgit v1.2.3