mirror of
https://github.com/fltk/fltk.git
synced 2026-06-02 07:26:57 +08:00
macOS: Restore fullscreen window mode when using SDK < 10.7 (#1192)
This commit is contained in:
+12
-11
@@ -3297,23 +3297,24 @@ void Fl_Cocoa_Window_Driver::makeWindow()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||||
static BOOL fullscreen_screen_border = NO; // YES means the multi-screened window had a border before
|
static BOOL fullscreen_screen_border = NO; // YES means the multi-screened window had a border before
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static NSUInteger calc_win_style(Fl_Window *win);
|
static NSUInteger calc_win_style(Fl_Window *win);
|
||||||
|
|
||||||
|
|
||||||
void Fl_Cocoa_Window_Driver::fullscreen_on() {
|
void Fl_Cocoa_Window_Driver::fullscreen_on() {
|
||||||
|
pWindow->_set_fullscreen();
|
||||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||||
|
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||||
bool has_border = pWindow->border();
|
bool has_border = pWindow->border();
|
||||||
if (fl_mac_os_version >= 100700 && fullscreen_screen_top() >= 0 && has_border) {
|
if (fl_mac_os_version >= 100700 && fullscreen_screen_top() >= 0 && has_border) {
|
||||||
fullscreen_screen_border = YES;
|
fullscreen_screen_border = YES;
|
||||||
has_border = false;
|
has_border = false;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
pWindow->_set_fullscreen();
|
|
||||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
|
||||||
if (fl_mac_os_version >= 100700 && has_border) {
|
if (fl_mac_os_version >= 100700 && has_border) {
|
||||||
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
|
||||||
NSWindow *nswin = fl_xid(pWindow);
|
NSWindow *nswin = fl_xid(pWindow);
|
||||||
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_13
|
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_13
|
||||||
if (fl_mac_os_version >= 101300) {
|
if (fl_mac_os_version >= 101300) {
|
||||||
@@ -3328,8 +3329,9 @@ void Fl_Cocoa_Window_Driver::fullscreen_on() {
|
|||||||
pWindow->_set_fullscreen();
|
pWindow->_set_fullscreen();
|
||||||
}
|
}
|
||||||
[nswin toggleFullScreen:nil];
|
[nswin toggleFullScreen:nil];
|
||||||
|
} else
|
||||||
# endif
|
# endif
|
||||||
} else if (fl_mac_os_version >= 100600) {
|
if (fl_mac_os_version >= 100600) {
|
||||||
FLWindow *nswin = fl_xid(pWindow);
|
FLWindow *nswin = fl_xid(pWindow);
|
||||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||||
if (fl_mac_os_version >= 100700 && (nswin.styleMask & NSWindowStyleMaskFullScreen)) {
|
if (fl_mac_os_version >= 100700 && (nswin.styleMask & NSWindowStyleMaskFullScreen)) {
|
||||||
@@ -3429,12 +3431,8 @@ void Fl_Cocoa_Window_Driver::fullscreen_off(int X, int Y, int W, int H) {
|
|||||||
NSWindow *nswin = fl_xid(pWindow);
|
NSWindow *nswin = fl_xid(pWindow);
|
||||||
pWindow->_clear_fullscreen();
|
pWindow->_clear_fullscreen();
|
||||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
|
||||||
if (fl_mac_os_version >= 100700
|
|
||||||
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
|
||||||
&& ([nswin styleMask] & NSWindowStyleMaskFullScreen)
|
|
||||||
# endif
|
|
||||||
) {
|
|
||||||
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||||
|
if (fl_mac_os_version >= 100700 && ([nswin styleMask] & NSWindowStyleMaskFullScreen)) {
|
||||||
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_13
|
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_13
|
||||||
if (fl_mac_os_version >= 101300) {
|
if (fl_mac_os_version >= 101300) {
|
||||||
NSWindow *active_tab = [[nswin tabGroup] selectedWindow];
|
NSWindow *active_tab = [[nswin tabGroup] selectedWindow];
|
||||||
@@ -3443,8 +3441,9 @@ void Fl_Cocoa_Window_Driver::fullscreen_off(int X, int Y, int W, int H) {
|
|||||||
# endif
|
# endif
|
||||||
[nswin toggleFullScreen:nil];
|
[nswin toggleFullScreen:nil];
|
||||||
pWindow->resize(*no_fullscreen_x(), *no_fullscreen_y(), *no_fullscreen_w(), *no_fullscreen_h());
|
pWindow->resize(*no_fullscreen_x(), *no_fullscreen_y(), *no_fullscreen_w(), *no_fullscreen_h());
|
||||||
|
} else
|
||||||
# endif
|
# endif
|
||||||
} else if (fl_mac_os_version >= 100600) {
|
if (fl_mac_os_version >= 100600) {
|
||||||
// Transition from multi-screen fullscreen mode to normal mode
|
// Transition from multi-screen fullscreen mode to normal mode
|
||||||
NSInteger level = NSNormalWindowLevel;
|
NSInteger level = NSNormalWindowLevel;
|
||||||
if (pWindow->modal()) level = modal_window_level();
|
if (pWindow->modal()) level = modal_window_level();
|
||||||
@@ -3471,7 +3470,9 @@ void Fl_Cocoa_Window_Driver::fullscreen_off(int X, int Y, int W, int H) {
|
|||||||
pWindow->show();
|
pWindow->show();
|
||||||
}
|
}
|
||||||
Fl::handle(FL_FULLSCREEN, pWindow);
|
Fl::handle(FL_FULLSCREEN, pWindow);
|
||||||
|
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||||
fullscreen_screen_border = NO;
|
fullscreen_screen_border = NO;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user