diff --git a/src/engine/client/ec_gfx.c b/src/engine/client/ec_gfx.c index 09d8d57bb..1f9ec6428 100644 --- a/src/engine/client/ec_gfx.c +++ b/src/engine/client/ec_gfx.c @@ -538,7 +538,7 @@ int gfx_window_active() #ifdef CONFIG_NO_SDL return glfwGetWindowParam(GLFW_ACTIVE) == GL_TRUE ? 1 : 0; #else - return 1; /* TODO: SDL*/ + return SDL_GetAppState()&SDL_APPINPUTFOCUS; /* TODO: SDL*/ #endif } @@ -547,7 +547,7 @@ int gfx_window_open() #ifdef CONFIG_NO_SDL return glfwGetWindowParam(GLFW_OPENED) == GL_TRUE ? 1 : 0; #else - return 1; /* TODO: SDL*/ + return SDL_GetAppState()&SDL_APPACTIVE; /* TODO: SDL*/ #endif } diff --git a/src/engine/client/ec_inp.c b/src/engine/client/ec_inp.c index d639cf723..dc21bdae6 100644 --- a/src/engine/client/ec_inp.c +++ b/src/engine/client/ec_inp.c @@ -35,7 +35,7 @@ static int input_current = 0; static unsigned int last_release = 0; #else static int input_grabbed = 0; -static int input_use_grab = 1; +static int input_use_grab = 0; #endif static unsigned int release_delta = -1; @@ -296,6 +296,12 @@ void inp_update() #else int i; + if(input_grabbed && !gfx_window_active()) + inp_mouse_mode_absolute(); + + /*if(!input_grabbed && gfx_window_active()) + inp_mouse_mode_relative();*/ + /* clear and begin count on the other one */ mem_zero(&input_count[input_current], sizeof(input_count[input_current])); mem_copy(input_state[input_current], input_state[input_current^1], sizeof(input_state[input_current]));