--- qemu/sdl.c 2008-01-06 20:38:42.000000000 +0100 +++ qemu-altgrabmod/sdl.c 2008-02-07 20:04:58.000000000 +0100 @@ -229,7 +229,7 @@ if (!alt_grab) status = " - Press Ctrl-Alt to exit grab"; else - status = " - Press Ctrl-Alt-Shift to exit grab"; + status = " - Press Ctrl (right) to exit grab"; } if (qemu_name) @@ -367,8 +367,8 @@ 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); + mod_state = (SDL_GetModState() & KMOD_RCTRL) == + KMOD_RCTRL; } gui_key_modifier_pressed = mod_state; if (gui_key_modifier_pressed) { @@ -390,6 +390,19 @@ } gui_keysym = 1; break; + case 0x3b ... 0x44: /* F1 .. F10 keys */ + case 0xe: /* backspace */ + /* like sendkey ctrl-alt-(fn|backspace) */ + /* key down */ + kbd_put_keycode(0x1d); /* left ctrl key */ + kbd_put_keycode(0x38); /* left alt key */ + kbd_put_keycode(keycode); + /* key up */ + kbd_put_keycode(0x1d|0x80); + kbd_put_keycode(0x38|0x80); + kbd_put_keycode(keycode|0x80); + gui_keysym = 1; + break; default: break; }