Fixed focus events triggered by window frame.

This commit is contained in:
Camilla Berglund 2014-04-02 13:29:07 +02:00
parent b54c76d6a3
commit f5a996a5af
2 changed files with 13 additions and 6 deletions

View File

@ -84,6 +84,7 @@ The following dependencies are needed by the examples and test programs:
`GLX_SGIX_fbconfig` was unavailable
- [X11] Bugfix: The message type of ICCCM protocol events was not checked
- [X11] Bugfix: `glfwDestroyWindow` did not flush the output buffer.
- [X11] Bugfix: Window frame interactions were reported as focus events
## Contact

View File

@ -913,20 +913,26 @@ static void processEvent(XEvent *event)
case FocusIn:
{
_glfwInputWindowFocus(window, GL_TRUE);
if (event->xfocus.mode == NotifyNormal)
{
_glfwInputWindowFocus(window, GL_TRUE);
if (window->cursorMode == GLFW_CURSOR_DISABLED)
disableCursor(window);
if (window->cursorMode == GLFW_CURSOR_DISABLED)
disableCursor(window);
}
break;
}
case FocusOut:
{
_glfwInputWindowFocus(window, GL_FALSE);
if (event->xfocus.mode == NotifyNormal)
{
_glfwInputWindowFocus(window, GL_FALSE);
if (window->cursorMode == GLFW_CURSOR_DISABLED)
restoreCursor(window);
if (window->cursorMode == GLFW_CURSOR_DISABLED)
restoreCursor(window);
}
break;
}