Allow the user to override the relative mouse mode.

They almost never want to do this, as it seriously affects
applications that rely on continuous relative mouse motion.
This commit is contained in:
Sam Lantinga
2001-06-23 22:00:59 +00:00
parent e823f3f3c2
commit 15e9de32c0

View File

@@ -229,11 +229,23 @@ static void SetMouseAccel(_THIS, const char *accel_param)
/* Check to see if we need to enter or leave mouse relative mode */
void X11_CheckMouseModeNoLock(_THIS)
{
char *env_override;
int enable_relative = 1;
/* Allow the user to override the relative mouse mode.
They almost never want to do this, as it seriously affects
applications that rely on continuous relative mouse motion.
*/
env_override = getenv("SDL_MOUSE_NORELATIVE");
if ( env_override ) {
enable_relative = atoi(env_override);
}
/* If the mouse is hidden and input is grabbed, we use relative mode */
if ( !(SDL_cursorstate & CURSOR_VISIBLE) &&
if ( enable_relative &&
!(SDL_cursorstate & CURSOR_VISIBLE) &&
(this->input_grab != SDL_GRAB_OFF) &&
(SDL_GetAppState() & SDL_APPACTIVE) &&
!getenv("SDL_MOUSE_NORELATIVE") ) {
(SDL_GetAppState() & SDL_APPACTIVE) ) {
if ( ! mouse_relative ) {
X11_EnableDGAMouse(this);
if ( ! (using_dga & DGA_MOUSE) ) {