Commit 5b31187812694ef575c20fc3fe3123685a306fde
1 parent
38ca0f6d
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
Showing
1 changed file
with
3 additions
and
3 deletions
sdl.c
... | ... | @@ -404,6 +404,7 @@ static void sdl_refresh(DisplayState *ds) |
404 | 404 | mod_state = (ev->key.keysym.mod & gui_grab_code); |
405 | 405 | if (!mod_state) { |
406 | 406 | if (gui_key_modifier_pressed) { |
407 | + gui_key_modifier_pressed = 0; | |
407 | 408 | if (gui_keysym == 0) { |
408 | 409 | /* exit/enter grab if pressing Ctrl-Alt */ |
409 | 410 | if (!gui_grab) |
... | ... | @@ -415,7 +416,6 @@ static void sdl_refresh(DisplayState *ds) |
415 | 416 | reset_keys(); |
416 | 417 | break; |
417 | 418 | } |
418 | - gui_key_modifier_pressed = 0; | |
419 | 419 | gui_keysym = 0; |
420 | 420 | } |
421 | 421 | } |
... | ... | @@ -456,8 +456,8 @@ static void sdl_refresh(DisplayState *ds) |
456 | 456 | } |
457 | 457 | break; |
458 | 458 | case SDL_ACTIVEEVENT: |
459 | - if (gui_grab && (ev->active.gain & SDL_ACTIVEEVENTMASK) == 0 && | |
460 | - !gui_fullscreen_initial_grab) { | |
459 | + if (gui_grab && ev->active.state == SDL_APPINPUTFOCUS && | |
460 | + !ev->active.gain && !gui_fullscreen_initial_grab) { | |
461 | 461 | sdl_grab_end(); |
462 | 462 | } |
463 | 463 | break; | ... | ... |