Only apply cursor mode to focused windows.

master
Camilla Berglund ago%!(EXTRA string=12 years)
parent 037c5ec6f5
commit f175b2dddc
  1. 22
      src/input.c

@ -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;
}

Loading…
Cancel
Save