Fix "Full screen broken on macOS in FLTK 1.3.10" (#1192)

This commit is contained in:
ManoloFLTK 2025-01-25 16:29:51 +01:00
parent 93830563e9
commit 5c5a12d502
2 changed files with 18 additions and 1 deletions

View File

@ -3117,9 +3117,17 @@ NSOpenGLContext* Fl_X::GLcontext_getcurrent()
return [NSOpenGLContext currentContext];
}
static BOOL fullscreen_screen_border = NO;
void Fl_Window::fullscreen_x() {
_set_fullscreen();
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
if (fl_mac_os_version >= 100700 && fullscreen_screen_top >= 0 && border()) {
fullscreen_screen_border = YES;
border(0);
}
if (fl_mac_os_version >= 100700 && border()) {
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
[i->xid toggleFullScreen:nil];
@ -3167,7 +3175,12 @@ void Fl_Window::fullscreen_x() {
void Fl_Window::fullscreen_off_x(int X, int Y, int W, int H) {
_clear_fullscreen();
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
if (fl_mac_os_version >= 100700) {
if (fullscreen_screen_border) border(1);
if (fl_mac_os_version >= 100700
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
&& ([i->xid styleMask] & NSWindowStyleMaskFullScreen)
# endif
) {
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
[i->xid toggleFullScreen:nil];
# endif
@ -3193,6 +3206,7 @@ void Fl_Window::fullscreen_off_x(int X, int Y, int W, int H) {
show();
}
Fl::handle(FL_FULLSCREEN, this);
fullscreen_screen_border = NO;
}
/*

View File

@ -196,6 +196,9 @@ void fullscreen_cb(Fl_Widget *o, void *p) {
#endif
} else {
w->fullscreen_off();
#ifndef WIN32 // update our border state in case border was turned off
border_button->value(w->border());
#endif
}
}