Cleanup of #493.

This commit is contained in:
Camilla Berglund 2015-04-09 16:09:39 +02:00
parent 4277e9f5d6
commit c5099ff407
2 changed files with 9 additions and 11 deletions

View File

@ -64,6 +64,7 @@ GLFW bundles a number of dependencies in the `deps/` directory.
- Bugfix: Initialization failed on headless systems - Bugfix: Initialization failed on headless systems
- Bugfix: The cached current context could get out of sync - Bugfix: The cached current context could get out of sync
- [Cocoa] Bugfix: The cached `NSScreen` for a monitor could get out of sync
## Contact ## Contact
@ -102,6 +103,7 @@ skills.
- Doug Binks - Doug Binks
- blanco - blanco
- Martin Capitanio - Martin Capitanio
- Chi-kwan Chan
- Lambert Clara - Lambert Clara
- Andrew Corrigan - Andrew Corrigan
- Noel Cower - Noel Cower

View File

@ -32,20 +32,16 @@
#include <crt_externs.h> #include <crt_externs.h>
// Returns the screen that is specified by a displayID // Returns the NSScreen corresponding to the specified CGDirectDisplayID
// //
static NSScreen *getScreen(CGDirectDisplayID displayID) static NSScreen* getScreen(CGDirectDisplayID displayID)
{ {
// NOTE: Apple's documentation of [NSScreen screens] mentions that, NSArray* screens = [NSScreen screens];
// "The (screens) array should not be cached. Screens can be
// added, removed, or dynamically reconfigured at any time."
// Because of this, we simply obtain the screen from a
// displayID whenever we need it.
NSArray *screens = [NSScreen screens];
for(NSScreen *screen in screens) { for (NSScreen* screen in screens)
NSDictionary *dictionary = [screen deviceDescription]; {
NSNumber *number = [dictionary objectForKey:@"NSScreenNumber"]; NSDictionary* dictionary = [screen deviceDescription];
NSNumber* number = [dictionary objectForKey:@"NSScreenNumber"];
if ([number unsignedIntegerValue] == displayID) if ([number unsignedIntegerValue] == displayID)
return screen; return screen;
} }