master
Camilla Berglund ago%!(EXTRA string=10 years)
parent 4277e9f5d6
commit c5099ff407
  1. 2
      README.md
  2. 22
      src/cocoa_window.m

@ -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

@ -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." for (NSScreen* screen in screens)
// Because of this, we simply obtain the screen from a {
// displayID whenever we need it. NSDictionary* dictionary = [screen deviceDescription];
NSArray *screens = [NSScreen screens]; NSNumber* number = [dictionary objectForKey:@"NSScreenNumber"];
for(NSScreen *screen in screens) {
NSDictionary *dictionary = [screen deviceDescription];
NSNumber *number = [dictionary objectForKey:@"NSScreenNumber"];
if ([number unsignedIntegerValue] == displayID) if ([number unsignedIntegerValue] == displayID)
return screen; return screen;
} }

Loading…
Cancel
Save