From 6f6675ed8bb22f0deb37fde8c1b999b14818b907 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Tue, 16 Dec 2003 09:58:21 +0000 Subject: [PATCH] Add capture mouse option, patch #860831 Uses Ctrl m to toggle, since that is closest to original games. Disabled by default. svn-id: r11680 --- backends/sdl/sdl-common.cpp | 17 +++++++++++++++-- common/system.h | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/backends/sdl/sdl-common.cpp b/backends/sdl/sdl-common.cpp index 60de904da75..195e58dbe3f 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- will change the GFX mode + // Ctrl-Alt- 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; diff --git a/common/system.h b/common/system.h index 791c3927598..550a2ec475e 100644 --- a/common/system.h +++ b/common/system.h @@ -98,6 +98,7 @@ public: PROP_GET_FMOPL_ENV_BITS, PROP_GET_FMOPL_EG_ENT, PROP_TOGGLE_ASPECT_RATIO, + PROP_TOGGLE_MOUSE_GRAB, PROP_WANT_RECT_OPTIM }; union Property {