From 94f471b701837d06f31d7314368b849619fc62e8 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Mon, 3 Feb 2025 12:08:20 +0100 Subject: [PATCH] macOS: fix transition from single-screen fullscreen to "All Screens" fullscreen --- src/Fl_cocoa.mm | 8 ++++++-- 1 file 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(); -- GitLab