|
@@ -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);
|
|
|
|