Only apply cursor mode to focused windows.

This commit is contained in:
Camilla Berglund 2013-04-19 00:19:48 +02:00
parent 037c5ec6f5
commit f175b2dddc
1 changed files with 13 additions and 9 deletions

View File

@ -52,20 +52,24 @@ static void setCursorMode(_GLFWwindow* window, int newMode)
if (oldMode == newMode)
return;
if (oldMode == GLFW_CURSOR_CAPTURED)
_glfwPlatformSetCursorPos(window, _glfw.cursorPosX, _glfw.cursorPosY);
else if (newMode == GLFW_CURSOR_CAPTURED)
if (window == _glfw.focusedWindow)
{
int width, height;
if (oldMode == GLFW_CURSOR_CAPTURED)
_glfwPlatformSetCursorPos(window, _glfw.cursorPosX, _glfw.cursorPosY);
else if (newMode == GLFW_CURSOR_CAPTURED)
{
int width, height;
_glfw.cursorPosX = window->cursorPosX;
_glfw.cursorPosY = window->cursorPosY;
_glfw.cursorPosX = window->cursorPosX;
_glfw.cursorPosY = window->cursorPosY;
_glfwPlatformGetWindowSize(window, &width, &height);
_glfwPlatformSetCursorPos(window, width / 2.0, height / 2.0);
_glfwPlatformGetWindowSize(window, &width, &height);
_glfwPlatformSetCursorPos(window, width / 2.0, height / 2.0);
}
_glfwPlatformSetCursorMode(window, newMode);
}
_glfwPlatformSetCursorMode(window, newMode);
window->cursorMode = newMode;
}