diff options
| author | Travis Howell | 2003-12-16 09:58:21 +0000 | 
|---|---|---|
| committer | Travis Howell | 2003-12-16 09:58:21 +0000 | 
| commit | 6f6675ed8bb22f0deb37fde8c1b999b14818b907 (patch) | |
| tree | 7bd45083ce7ad4021c265e622702fd4a17eed0bb /backends | |
| parent | 83e9c59327d695b4bf2e0d8ae6661b25042ff750 (diff) | |
| download | scummvm-rg350-6f6675ed8bb22f0deb37fde8c1b999b14818b907.tar.gz scummvm-rg350-6f6675ed8bb22f0deb37fde8c1b999b14818b907.tar.bz2 scummvm-rg350-6f6675ed8bb22f0deb37fde8c1b999b14818b907.zip  | |
Add capture mouse option, patch #860831
Uses Ctrl m to toggle, since that is closest to original games.
Disabled by default.
svn-id: r11680
Diffstat (limited to 'backends')
| -rw-r--r-- | backends/sdl/sdl-common.cpp | 17 | 
1 files changed, 15 insertions, 2 deletions
diff --git a/backends/sdl/sdl-common.cpp b/backends/sdl/sdl-common.cpp index 60de904da7..195e58dbe3 100644 --- a/backends/sdl/sdl-common.cpp +++ b/backends/sdl/sdl-common.cpp @@ -635,6 +635,12 @@ bool OSystem_SDL_Common::poll_event(Event *event) {  				return true;  			}  #else +			// Ctrl-b toggles mouse capture +			if (b == KBD_CTRL && ev.key.keysym.sym == 'm') { +				property(PROP_TOGGLE_MOUSE_GRAB, NULL); +				break; +			} +  			// Ctrl-z and Alt-X quit  			if ((b == KBD_CTRL && ev.key.keysym.sym == 'z') || (b == KBD_ALT && ev.key.keysym.sym == 'x')) {  				event->event_code = EVENT_QUIT; @@ -642,7 +648,7 @@ bool OSystem_SDL_Common::poll_event(Event *event) {  			}  #endif -			// Ctr-Alt-<key> will change the GFX mode +			// Ctrl-Alt-<key> will change the GFX mode  			if ((b & (KBD_CTRL|KBD_ALT)) == (KBD_CTRL|KBD_ALT)) {  				static const int gfxModes[][4] = {  						{ GFX_NORMAL, GFX_DOUBLESIZE, GFX_TRIPLESIZE, -1 }, @@ -676,7 +682,7 @@ bool OSystem_SDL_Common::poll_event(Event *event) {  				Property prop;  				int factor = _scaleFactor - 1; -				// Ctr-Alt-a toggles aspect ratio correction +				// Ctrl-Alt-a toggles aspect ratio correction  				if (ev.key.keysym.sym == 'a') {  					property(PROP_TOGGLE_ASPECT_RATIO, NULL);  					break; @@ -1020,6 +1026,13 @@ uint32 OSystem_SDL_Common::property(int param, Property *value) {  	case PROP_GET_SAMPLE_RATE:  		return SAMPLES_PER_SEC; + +	case PROP_TOGGLE_MOUSE_GRAB: +		if (SDL_WM_GrabInput(SDL_GRAB_QUERY) == SDL_GRAB_OFF) +			SDL_WM_GrabInput(SDL_GRAB_ON); +		else +			SDL_WM_GrabInput(SDL_GRAB_OFF); +		break;  	}  	return 0;  | 
