Explorar o código

Fixed window positioning on OS X.

Camilla Berglund %!s(int64=12) %!d(string=hai) anos
pai
achega
d20aa0428a
Modificáronse 2 ficheiros con 4 adicións e 2 borrados
  1. 1 0
      README.md
  2. 3 2
      src/cocoa_window.m

+ 1 - 0
README.md

@@ -114,6 +114,7 @@ See the [GLFW 3.0 documentation](http://www.glfw.org/docs/3.0/).
                    library termination
  - [Cocoa] Bugfix: The clipboard string was not freed on terminate
  - [Cocoa] Bugfix: Selectors were used that are not declared by the 10.6 SDK
+ - [Cocoa] Bugfix: The position set by `glfwSetWindowPos` was incorrect
  - [X11] Bugfix: Override-redirect windows were resized to the desired instead
                  of the actual resolution of the selected video mode
  - [X11] Bugfix: Screensaver override for full screen windows had a possible

+ 3 - 2
src/cocoa_window.m

@@ -937,8 +937,9 @@ void _glfwPlatformGetWindowPos(_GLFWwindow* window, int* xpos, int* ypos)
 
 void _glfwPlatformSetWindowPos(_GLFWwindow* window, int x, int y)
 {
-    const NSRect frameRect =
-        [window->ns.object frameRectForContentRect:NSMakeRect(x, y, 0, 0)];
+    const NSRect contentRect = [window->ns.view frame];
+    const NSRect dummyRect = NSMakeRect(x, transformY(y + contentRect.size.height), 0, 0);
+    const NSRect frameRect = [window->ns.object frameRectForContentRect:dummyRect];
     [window->ns.object setFrameOrigin:frameRect.origin];
 }