From: Ian Jackson Date: Tue, 6 May 2008 11:05:18 +0000 (+0100) Subject: merge from in qemu upstream: support alt_grab X-Git-Tag: xen-3.3.0-rc1~213 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=7ac59fab189fa448689123bcfe399e9489211b4b;p=qemu-xen-3.4-testing.git merge from in qemu upstream: support alt_grab --- diff --git a/sdl.c b/sdl.c index f2ac7320..c00cbf07 100644 --- a/sdl.c +++ b/sdl.c @@ -418,7 +418,10 @@ static void sdl_update_caption(void) strcat(buf, " [Stopped]"); } if (gui_grab) { - strcat(buf, " - Press Ctrl-Alt to exit grab"); + if (!alt_grab) + strcat(buf, " - Press Ctrl-Alt to exit grab"); + else + strcat(buf, " - Press Ctrl-Alt-Shift to exit grab"); } SDL_WM_SetCaption(buf, domain_name); } @@ -525,8 +528,13 @@ static void sdl_refresh(DisplayState *ds) case SDL_KEYDOWN: case SDL_KEYUP: if (ev->type == SDL_KEYDOWN) { - mod_state = (SDL_GetModState() & gui_grab_code) == - gui_grab_code; + if (!alt_grab) { + mod_state = (SDL_GetModState() & gui_grab_code) == + gui_grab_code; + } else { + mod_state = (SDL_GetModState() & (gui_grab_code | KMOD_LSHIFT)) == + (gui_grab_code | KMOD_LSHIFT); + } gui_key_modifier_pressed = mod_state; if (gui_key_modifier_pressed) { int keycode; @@ -586,7 +594,12 @@ static void sdl_refresh(DisplayState *ds) } } } else if (ev->type == SDL_KEYUP) { - mod_state = (ev->key.keysym.mod & gui_grab_code); + if (!alt_grab) { + mod_state = (ev->key.keysym.mod & gui_grab_code); + } else { + mod_state = (ev->key.keysym.mod & + (gui_grab_code | KMOD_LSHIFT)); + } if (!mod_state) { if (gui_key_modifier_pressed) { gui_key_modifier_pressed = 0;