X11: Re-enable cursor for all types of FocusOut

This prevents disabled cursor mode from interfering with window frame
interactions.

Related to #650.
This commit is contained in:
Camilla Berglund 2016-05-31 13:03:59 +02:00
parent ed076b7c5b
commit 28d4c9e9f4

View File

@ -1367,6 +1367,9 @@ static void processEvent(XEvent *event)
case FocusIn:
{
if (window->cursorMode == GLFW_CURSOR_DISABLED)
_glfwPlatformSetCursorMode(window, GLFW_CURSOR_DISABLED);
if (event->xfocus.mode == NotifyGrab ||
event->xfocus.mode == NotifyUngrab)
{
@ -1378,15 +1381,15 @@ static void processEvent(XEvent *event)
if (window->x11.ic)
XSetICFocus(window->x11.ic);
if (window->cursorMode == GLFW_CURSOR_DISABLED)
_glfwPlatformSetCursorMode(window, GLFW_CURSOR_DISABLED);
_glfwInputWindowFocus(window, GLFW_TRUE);
return;
}
case FocusOut:
{
if (window->cursorMode == GLFW_CURSOR_DISABLED)
_glfwPlatformSetCursorMode(window, GLFW_CURSOR_NORMAL);
if (event->xfocus.mode == NotifyGrab ||
event->xfocus.mode == NotifyUngrab)
{
@ -1398,9 +1401,6 @@ static void processEvent(XEvent *event)
if (window->x11.ic)
XUnsetICFocus(window->x11.ic);
if (window->cursorMode == GLFW_CURSOR_DISABLED)
_glfwPlatformSetCursorMode(window, GLFW_CURSOR_NORMAL);
if (window->monitor && window->autoIconify)
_glfwPlatformIconifyWindow(window);