Put synthetic key releases after defocus event.

This allows the application to separate actual from synthetic key
release events.
This commit is contained in:
Camilla Berglund 2013-04-16 16:06:28 +02:00
parent 2caee225ea
commit 648c8e7371

View File

@ -68,6 +68,11 @@ void _glfwInputWindowFocus(_GLFWwindow* window, GLboolean focused)
{ {
int i; int i;
_glfw.focusedWindow = NULL;
if (window->callbacks.focus)
window->callbacks.focus((GLFWwindow*) window, focused);
// Release all pressed keyboard keys // Release all pressed keyboard keys
for (i = 0; i <= GLFW_KEY_LAST; i++) for (i = 0; i <= GLFW_KEY_LAST; i++)
{ {
@ -81,11 +86,6 @@ void _glfwInputWindowFocus(_GLFWwindow* window, GLboolean focused)
if (window->mouseButton[i] == GLFW_PRESS) if (window->mouseButton[i] == GLFW_PRESS)
_glfwInputMouseClick(window, i, GLFW_RELEASE); _glfwInputMouseClick(window, i, GLFW_RELEASE);
} }
_glfw.focusedWindow = NULL;
if (window->callbacks.focus)
window->callbacks.focus((GLFWwindow*) window, focused);
} }
} }
} }