aboutsummaryrefslogtreecommitdiff
path: root/backends/sdl
diff options
context:
space:
mode:
authorTravis Howell2003-12-16 09:58:21 +0000
committerTravis Howell2003-12-16 09:58:21 +0000
commit6f6675ed8bb22f0deb37fde8c1b999b14818b907 (patch)
tree7bd45083ce7ad4021c265e622702fd4a17eed0bb /backends/sdl
parent83e9c59327d695b4bf2e0d8ae6661b25042ff750 (diff)
downloadscummvm-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/sdl')
-rw-r--r--backends/sdl/sdl-common.cpp17
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;