This is another small step towards having GLFW play nice with other
toolkits sharing the same process, including AppKit.
Any macOS platform function that touches Cocoa must now wrap itself in
an autoreleasepool block.
Since GLFW no longer provides an autoreleasepool outside of its
functions, THIS MAY BREAK EXISTING CODE MIXING GLFW AND COCOA. Sorry!
Please add your own autoreleasepool blocks as needed.
Fixes#1107.
Closes#1114.
The application delegate needs to be set at init to receive monitor
events before window creation. Menu creation is moved to
applicationWillFinishLaunching: to play nicer with other toolkits in the
same process.
Related to #1317.
This removes the GLFW NSApplication subclass as a step towards better
coexistence with other libraries that touch Cocoa.
This moves application object creation to platform init to allow event
processing before window creation.
Related to #1317.
When cursor isn't in normal mode and should be hidden, use [NSCursor hide]
method instead of setting it to blank image. This should prevent
situations when hidden cursor becomes visible after system notification
was shown.
Fixes#971.
Closes#1028.
Look, a can of worms! I wonder what's inside.
This adds the first platform specific window hint, transforming
a compile-time option to a run-time per-window one.
As noted in the documentation for NSDistributedNotificationCenter,
(under the Discussion heading) before an observer is deallocated a call
should be made to removeObserver: in order to ensure that the listener
is correctly removed from all observation pools.
Fixes#817.
Closes#826.
The menu bar for non-bundled applications did not become visible until
it had lost and regained focus. This is fixed (somehow) by letting the
NSApplication run loop start and stop.
Technique by scoopr.
The Core Graphics callback is called before the corresponding NSScreen
object for a newly connected monitor is created, thus making monitor
enumeration fail.
The public, platform, native, event and utility functions are already
documented in-source. Having duplicate documentation inevitably means
having them contradict one another. Furthermore, most of the function
descriptions simply repeated the name of the function.