summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2025-02-03 12:08:20 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2025-02-03 12:08:20 +0100
commit94f471b701837d06f31d7314368b849619fc62e8 (patch)
tree2682bc0241b2e6ea007aad0df056a9ff778de273 /src
parentbc764dabc1782bfde6d38b7da10b2d048a1d3634 (diff)
macOS: fix transition from single-screen fullscreen to "All Screens" fullscreen
Diffstat (limited to 'src')
-rw-r--r--src/Fl_cocoa.mm8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm
index a045d07ea..9468e8ce2 100644
--- a/src/Fl_cocoa.mm
+++ b/src/Fl_cocoa.mm
@@ -1419,7 +1419,8 @@ static FLWindowDelegate *flwindowdelegate_instance = nil;
}
#endif
if (!window->parent() && window->border() && Fl_Window_Driver::driver(window)->is_resizable()) {
- Fl_Cocoa_Window_Driver::driver(window)->is_maximized([nsw isZoomed]);
+ Fl_Cocoa_Window_Driver::driver(window)->is_maximized([nsw isZoomed] &&
+ !window->fullscreen_active());
}
fl_unlock_function();
}
@@ -3332,8 +3333,11 @@ void Fl_Cocoa_Window_Driver::fullscreen_on() {
FLWindow *nswin = fl_xid(pWindow);
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
if (fl_mac_os_version >= 100700 && (nswin.styleMask & NSWindowStyleMaskFullScreen)) {
- // from single-screen fullscreen to "All Screens" fullscreen
+ // from single-screen fullscreen to "All Screens" fullscreen, with border
+ bool allscreens_on = (nswin.collectionBehavior & NSWindowCollectionBehaviorFullScreenNone);
+ if (allscreens_on) nswin.collectionBehavior &= ~NSWindowCollectionBehaviorFullScreenNone;
[nswin toggleFullScreen:nil];
+ if (allscreens_on) nswin.collectionBehavior |= NSWindowCollectionBehaviorFullScreenNone;
if (*no_fullscreen_w() == 0) {
*no_fullscreen_x() = x();
*no_fullscreen_y() = y();