This commit is contained in:
Andri Pálsson 2013-10-09 08:30:48 -07:00
commit ae9de33bb6
2 changed files with 14 additions and 1 deletions

View File

@ -60,6 +60,8 @@ static void enterFullscreenMode(_GLFWwindow* window)
[window->ns.view enterFullScreenMode:window->monitor->ns.screen
withOptions:nil];
_glfwInputWindowFocus(window, GL_TRUE);
}
// Leave fullscreen mode
@ -1056,6 +1058,10 @@ void _glfwPlatformSetCursorPos(_GLFWwindow* window, double x, double y)
CGDisplayMoveCursorToPoint(window->monitor->ns.displayID,
CGPointMake(x, y));
}
else if ([window->ns.view isInFullScreenMode])
{
CGWarpMouseCursorPosition(CGPointMake(x, y));
}
else
{
const NSRect contentRect = [window->ns.view frame];
@ -1065,6 +1071,12 @@ void _glfwPlatformSetCursorPos(_GLFWwindow* window, double x, double y)
CGWarpMouseCursorPosition(CGPointMake(globalPoint.x,
transformY(globalPoint.y)));
}
if (window->cursorMode != GLFW_CURSOR_DISABLED)
{
CGAssociateMouseAndMouseCursorPosition(true);
}
setModeCursor(window, window->cursorMode);
}
void _glfwPlatformSetCursorMode(_GLFWwindow* window, int mode)

View File

@ -48,6 +48,8 @@ static void setCursorMode(_GLFWwindow* window, int newMode)
oldMode = window->cursorMode;
if (oldMode == newMode)
return;
window->cursorMode = newMode;
if (window == _glfw.focusedWindow)
{
@ -72,7 +74,6 @@ static void setCursorMode(_GLFWwindow* window, int newMode)
_glfwPlatformSetCursorMode(window, newMode);
}
window->cursorMode = newMode;
}
// Set sticky keys mode for the specified window