Cocoa: Fix unresponsive cursor after ungrab

There is a suppression interval (0.25 seconds by default) after a call
to CGWarpMouseCursorPosition, during which local hardware events
(keyboard and mouse) are ignored. GLFW already calls
CGEventSourceSetLocalEventsSuppressionInterval with a value of 0.0, but
it doesn't help in this case, there is still a short delay before the
cursor can be moved. Moving the CGAssociateMouseAndMouseCursorPosition
call after the cursor position has been restored, fixes the issue.

Closes #1962
This commit is contained in:
Ioannis Tsakpinis 2021-09-05 22:58:53 +03:00 committed by Camilla Löwy
parent e7758c506d
commit 157ebb80aa

View File

@ -114,10 +114,10 @@ static void updateCursorMode(_GLFWwindow* window)
else if (_glfw.ns.disabledCursorWindow == window)
{
_glfw.ns.disabledCursorWindow = NULL;
CGAssociateMouseAndMouseCursorPosition(true);
_glfwPlatformSetCursorPos(window,
_glfw.ns.restoreCursorPosX,
_glfw.ns.restoreCursorPosY);
CGAssociateMouseAndMouseCursorPosition(true);
}
if (cursorInContentArea(window))