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 `GLX_SGIX_fbconfig` was unavailable
- [X11] Bugfix: The message type of ICCCM protocol events was not checked - [X11] Bugfix: The message type of ICCCM protocol events was not checked
- [X11] Bugfix: `glfwDestroyWindow` did not flush the output buffer. - [X11] Bugfix: `glfwDestroyWindow` did not flush the output buffer.
- [X11] Bugfix: Window frame interactions were reported as focus events
## Contact ## Contact

View File

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