diff options
| -rw-r--r-- | src/engine/client/ec_gfx.c | 4 | ||||
| -rw-r--r-- | src/engine/client/ec_inp.c | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/engine/client/ec_gfx.c b/src/engine/client/ec_gfx.c index 09d8d57b..1f9ec642 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 d639cf72..dc21bdae 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])); |