Fixed cursor outside new full screen windows.

The cursor was not positioned over newly created full screen windows,
leading to confusing behavior like invisible cursor or window
iconification.

This fix is a stop-gap until the direct cursor position work is merged.

Fixes #111.
This commit is contained in:
Camilla Berglund 2014-06-18 17:10:26 +02:00
parent 7cb217ed4a
commit f3b65445dc
2 changed files with 16 additions and 2 deletions

View File

@ -68,6 +68,7 @@ GLFW bundles a number of dependencies in the `deps/` directory.
- Bugfix: The debug context attribute was set from `GL_ARB_debug_output` even - Bugfix: The debug context attribute was set from `GL_ARB_debug_output` even
when a debug context had not been requested when a debug context had not been requested
- Bugfix: The particles example was not linked against the threading library - Bugfix: The particles example was not linked against the threading library
- Bugfix: The cursor was not positioned over newly created full screen windows
- [Cocoa] Added `_GLFW_USE_RETINA` to control whether windows will use the full - [Cocoa] Added `_GLFW_USE_RETINA` to control whether windows will use the full
resolution on Retina displays resolution on Retina displays
- [Cocoa] Bugfix: Using a 1x1 cursor for hidden mode caused some screen - [Cocoa] Bugfix: Using a 1x1 cursor for hidden mode caused some screen

View File

@ -246,8 +246,21 @@ GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height,
// Restore the previously current context (or NULL) // Restore the previously current context (or NULL)
_glfwPlatformMakeContextCurrent(previous); _glfwPlatformMakeContextCurrent(previous);
if (wndconfig.monitor == NULL && wndconfig.visible) if (wndconfig.monitor)
{
int width, height;
_glfwPlatformGetWindowSize(window, &width, &height);
window->cursorPosX = width / 2;
window->cursorPosY = height / 2;
_glfwPlatformSetCursorPos(window, window->cursorPosX, window->cursorPosY);
}
else
{
if (wndconfig.visible)
_glfwPlatformShowWindow(window); _glfwPlatformShowWindow(window);
}
return (GLFWwindow*) window; return (GLFWwindow*) window;
} }