summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl_cocoa.mm28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm
index 23efb6e15..896bc4f5a 100644
--- a/src/Fl_cocoa.mm
+++ b/src/Fl_cocoa.mm
@@ -1192,6 +1192,8 @@ static FLTextView *fltextview_instance = nil;
- (void)windowDidDeminiaturize:(NSNotification *)notif;
- (void)fl_windowMiniaturize:(NSNotification *)notif;
- (void)windowDidMiniaturize:(NSNotification *)notif;
+- (void)windowWillEnterFullScreen:(NSNotification *)notif;
+- (void)windowWillExitFullScreen:(NSNotification *)notif;
- (BOOL)windowShouldClose:(id)fl;
- (void)anyWindowWillClose:(NSNotification *)notif;
- (void)doNothing:(id)unused;
@@ -1447,6 +1449,18 @@ static FLWindowDelegate *flwindowdelegate_instance = nil;
Fl::handle(FL_HIDE, window);
fl_unlock_function();
}
+- (void)windowWillEnterFullScreen:(NSNotification *)notif;
+{
+ FLWindow *nsw = (FLWindow*)[notif object];
+ Fl_Window *window = [nsw getFl_Window];
+ window->_set_fullscreen();
+}
+- (void)windowWillExitFullScreen:(NSNotification *)notif;
+{
+ FLWindow *nsw = (FLWindow*)[notif object];
+ Fl_Window *window = [nsw getFl_Window];
+ window->_clear_fullscreen();
+}
- (BOOL)windowShouldClose:(id)fl
{
fl_lock_function();
@@ -3198,7 +3212,12 @@ void Fl_Cocoa_Window_Driver::makeWindow()
void Fl_Cocoa_Window_Driver::fullscreen_on() {
pWindow->_set_fullscreen();
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
- if (fl_mac_os_version >= 100600) {
+ if (fl_mac_os_version >= 100700) {
+# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ FLWindow *nswin = fl_xid(pWindow);
+ [nswin toggleFullScreen:nil];
+# endif
+ } else if (fl_mac_os_version >= 100600) {
FLWindow *nswin = fl_xid(pWindow);
[nswin setStyleMask:NSWindowStyleMaskBorderless]; // 10.6
if ([nswin isKeyWindow]) {
@@ -3279,7 +3298,12 @@ static void restore_window_title_and_icon(Fl_Window *pWindow, NSImage *icon) {
void Fl_Cocoa_Window_Driver::fullscreen_off(int X, int Y, int W, int H) {
pWindow->_clear_fullscreen();
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
- if (fl_mac_os_version >= 100600) {
+ if (fl_mac_os_version >= 100700) {
+# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ FLWindow *nswin = fl_xid(pWindow);
+ [nswin toggleFullScreen:nil];
+# endif
+ } else if (fl_mac_os_version >= 100600) {
FLWindow *nswin = fl_xid(pWindow);
NSInteger level = NSNormalWindowLevel;
if (pWindow->modal()) level = modal_window_level();