Restored support for Mac OS X 10.6.
Modified during merge.
diff --git a/README.md b/README.md
index 68ef4bb..1098717 100644
--- a/README.md
+++ b/README.md
@@ -104,6 +104,8 @@
library
- [Cocoa] Bugfix: `glfwGetFramebufferSize` return the size in screen
coordinates
+ - [Cocoa] Bugfix: Messages not supported on Mac OS X 10.6 were used without
+ tests for precence
- [Win32] Bugfix: Context creation was attempted even if no valid pixel formats
had been found
- [X11] Bugfix: Duplicate window position and window and framebuffer size
@@ -168,6 +170,7 @@
- Martins Mozeiko
- Tristam MacDonald
- Hans Mackowiak
+ - Kyle McDonald
- David Medlock
- Jonathan Mercier
- Marcel Metz
diff --git a/src/cocoa_window.m b/src/cocoa_window.m
index d338e17..cb15386 100644
--- a/src/cocoa_window.m
+++ b/src/cocoa_window.m
@@ -69,6 +69,16 @@
return height - y;
}
+// Returns the backing rect of the specified window
+//
+static NSRect convertRectToBacking(_GLFWwindow* window, NSRect contentRect)
+{
+ if ([window->ns.view respondsToSelector:@selector(convertRectToBacking:)])
+ return [window->ns.view convertRectToBacking:contentRect];
+ else
+ return contentRect;
+}
+
//------------------------------------------------------------------------
// Delegate for window related notifications
@@ -112,7 +122,7 @@
[window->nsgl.context update];
const NSRect contentRect = [window->ns.view frame];
- const NSRect fbRect = [window->ns.view convertRectToBacking:contentRect];
+ const NSRect fbRect = convertRectToBacking(window, contentRect);
_glfwInputFramebufferSize(window, fbRect.size.width, fbRect.size.height);
_glfwInputWindowSize(window, contentRect.size.width, contentRect.size.height);
@@ -525,7 +535,7 @@
- (void)viewDidChangeBackingProperties
{
const NSRect contentRect = [window->ns.view frame];
- const NSRect fbRect = [window->ns.view convertRectToBacking:contentRect];
+ const NSRect fbRect = convertRectToBacking(window, contentRect);
_glfwInputFramebufferSize(window, fbRect.size.width, fbRect.size.height);
}
@@ -815,7 +825,8 @@
window->ns.view = [[GLFWContentView alloc] initWithGlfwWindow:window];
- [window->ns.view setWantsBestResolutionOpenGLSurface:YES];
+ if ([window->ns.view respondsToSelector:@selector(setWantsBestResolutionOpenGLSurface:)])
+ [window->ns.view setWantsBestResolutionOpenGLSurface:YES];
[window->ns.object setTitle:[NSString stringWithUTF8String:wndconfig->title]];
[window->ns.object setContentView:window->ns.view];
@@ -943,7 +954,7 @@
void _glfwPlatformGetFramebufferSize(_GLFWwindow* window, int* width, int* height)
{
const NSRect contentRect = [window->ns.view frame];
- const NSRect fbRect = [window->ns.view convertRectToBacking:contentRect];
+ const NSRect fbRect = convertRectToBacking(window, contentRect);
if (width)
*width = (int) fbRect.size.width;