--- SDL-1.2.11/src/events/SDL_keyboard.c 2006-05-04 09:06:02 +0400 +++ SDL-1.2.11/src/events/SDL_keyboard.c 2007-06-22 23:59:14 +0400 @@ -27,6 +27,7 @@ #include "SDL_events.h" #include "SDL_events_c.h" #include "SDL_sysevents.h" +#include "../video/SDL_sysvideo.h" /* Global keystate information */ @@ -382,6 +383,36 @@ int SDL_PrivateKeyboard(Uint8 state, SDL printf("The '%s' key has been %s\n", SDL_GetKeyName(keysym->sym), state == SDL_PRESSED ? "pressed" : "released"); #endif + + /* Toggle fullscreen on alt-enter + The alt-enter will never be send to the application */ + if( keysym->sym == SDLK_RETURN && state == SDL_PRESSED + && (SDL_ModState & KMOD_RALT)) { + SDL_WM_ToggleFullScreen(SDL_PublicSurface); + return(0); + } + + /* Toggle fullscreen on alt-enter + The alt-enter will never be send to the application */ + if( keysym->sym == SDLK_RETURN && state == SDL_PRESSED + && (SDL_ModState & KMOD_LALT)) { + SDL_WM_ToggleFullScreen(SDL_PublicSurface); + SDL_WM_IconifyWindow(); + return(0); + } + + if( keysym->sym == SDLK_g && state == SDL_PRESSED + && (SDL_ModState & KMOD_LCTRL)) { + SDL_WM_GrabInput(SDL_GRAB_OFF); + return(0); + } + + if( keysym->sym == SDLK_g && state == SDL_PRESSED + && (SDL_ModState & KMOD_RCTRL)) { + SDL_WM_GrabInput(SDL_GRAB_ON); + return(0); + } + /* Set up the keysym */ modstate = (Uint16)SDL_ModState; --- SDL-1.2.11/src/video/SDL_video.c 2006-05-01 12:02:48 +0400 +++ SDL-1.2.11/src/video/SDL_video.c 2007-06-22 23:59:14 +0400 @@ -1801,7 +1801,7 @@ void SDL_WM_SetIcon (SDL_Surface *icon, * This function returns the final grab mode after calling the * driver dependent function. */ -static SDL_GrabMode SDL_WM_GrabInputRaw(SDL_GrabMode mode) +SDL_GrabMode SDL_WM_GrabInputRaw(SDL_GrabMode mode) { SDL_VideoDevice *video = current_video; SDL_VideoDevice *this = current_video;