|
|
|
@ -129,10 +129,10 @@ static void updateCursorMode(_GLFWwindow* window) |
|
|
|
|
// |
|
|
|
|
static void acquireMonitor(_GLFWwindow* window) |
|
|
|
|
{ |
|
|
|
|
_glfwSetVideoModeNS(window->monitor, &window->videoMode); |
|
|
|
|
_glfwSetVideoModeCocoa(window->monitor, &window->videoMode); |
|
|
|
|
const CGRect bounds = CGDisplayBounds(window->monitor->ns.displayID); |
|
|
|
|
const NSRect frame = NSMakeRect(bounds.origin.x, |
|
|
|
|
_glfwTransformYNS(bounds.origin.y + bounds.size.height - 1), |
|
|
|
|
_glfwTransformYCocoa(bounds.origin.y + bounds.size.height - 1), |
|
|
|
|
bounds.size.width, |
|
|
|
|
bounds.size.height); |
|
|
|
|
|
|
|
|
@ -149,7 +149,7 @@ static void releaseMonitor(_GLFWwindow* window) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
_glfwInputMonitorWindow(window->monitor, NULL); |
|
|
|
|
_glfwRestoreVideoModeNS(window->monitor); |
|
|
|
|
_glfwRestoreVideoModeCocoa(window->monitor); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Translates macOS key modifiers into GLFW ones |
|
|
|
@ -885,7 +885,7 @@ static GLFWbool createNativeWindow(_GLFWwindow* window, |
|
|
|
|
|
|
|
|
|
// Transforms a y-coordinate between the CG display and NS screen spaces |
|
|
|
|
// |
|
|
|
|
float _glfwTransformYNS(float y) |
|
|
|
|
float _glfwTransformYCocoa(float y) |
|
|
|
|
{ |
|
|
|
|
return CGDisplayBounds(CGMainDisplayID()).size.height - y - 1; |
|
|
|
|
} |
|
|
|
@ -1006,7 +1006,7 @@ void _glfwPlatformGetWindowPos(_GLFWwindow* window, int* xpos, int* ypos) |
|
|
|
|
if (xpos) |
|
|
|
|
*xpos = contentRect.origin.x; |
|
|
|
|
if (ypos) |
|
|
|
|
*ypos = _glfwTransformYNS(contentRect.origin.y + contentRect.size.height - 1); |
|
|
|
|
*ypos = _glfwTransformYCocoa(contentRect.origin.y + contentRect.size.height - 1); |
|
|
|
|
|
|
|
|
|
} // autoreleasepool |
|
|
|
|
} |
|
|
|
@ -1016,7 +1016,7 @@ void _glfwPlatformSetWindowPos(_GLFWwindow* window, int x, int y) |
|
|
|
|
@autoreleasepool { |
|
|
|
|
|
|
|
|
|
const NSRect contentRect = [window->ns.view frame]; |
|
|
|
|
const NSRect dummyRect = NSMakeRect(x, _glfwTransformYNS(y + contentRect.size.height - 1), 0, 0); |
|
|
|
|
const NSRect dummyRect = NSMakeRect(x, _glfwTransformYCocoa(y + contentRect.size.height - 1), 0, 0); |
|
|
|
|
const NSRect frameRect = [window->ns.object frameRectForContentRect:dummyRect]; |
|
|
|
|
[window->ns.object setFrameOrigin:frameRect.origin]; |
|
|
|
|
|
|
|
|
@ -1218,7 +1218,7 @@ void _glfwPlatformSetWindowMonitor(_GLFWwindow* window, |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
const NSRect contentRect = |
|
|
|
|
NSMakeRect(xpos, _glfwTransformYNS(ypos + height - 1), width, height); |
|
|
|
|
NSMakeRect(xpos, _glfwTransformYCocoa(ypos + height - 1), width, height); |
|
|
|
|
const NSRect frameRect = |
|
|
|
|
[window->ns.object frameRectForContentRect:contentRect |
|
|
|
|
styleMask:getStyleMask(window)]; |
|
|
|
@ -1252,7 +1252,7 @@ void _glfwPlatformSetWindowMonitor(_GLFWwindow* window, |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
NSRect contentRect = NSMakeRect(xpos, _glfwTransformYNS(ypos + height - 1), |
|
|
|
|
NSRect contentRect = NSMakeRect(xpos, _glfwTransformYCocoa(ypos + height - 1), |
|
|
|
|
width, height); |
|
|
|
|
NSRect frameRect = [window->ns.object frameRectForContentRect:contentRect |
|
|
|
|
styleMask:styleMask]; |
|
|
|
@ -1516,7 +1516,7 @@ void _glfwPlatformSetCursorPos(_GLFWwindow* window, double x, double y) |
|
|
|
|
const NSPoint globalPoint = globalRect.origin; |
|
|
|
|
|
|
|
|
|
CGWarpMouseCursorPosition(CGPointMake(globalPoint.x, |
|
|
|
|
_glfwTransformYNS(globalPoint.y))); |
|
|
|
|
_glfwTransformYCocoa(globalPoint.y))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// HACK: Calling this right after setting the cursor position prevents macOS |
|
|
|
|