diff options
author | Julian Eisel <julian@blender.org> | 2020-06-10 19:05:30 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2020-06-18 10:27:40 +0300 |
commit | 60bf482dba721e3878770e6abefa3b35acca0021 (patch) | |
tree | f0f49a7034d8f01a352c0f0087813a74dd4b096d /intern | |
parent | ce11640eef03736c1d840f8293bc890a1012de49 (diff) |
Fix T74101: File Browser in macOS fullscreen crashes or makes windows unusable
When closing the File Browser window after making it fullscreen, Blender would
either crash or all windows would disappear, with no obvious way to bring them
back.
The "fix" is to not allow fullscreen for File Browsers (or any future "dialog"
windows), but only maximizing. From what I can tell that's how secondary
windows are supposed to work on macOS. What we previously did seemed like
something macOS doesn't handle cleanly, and I didn't find a simple way to do so
on our side.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/ghost/intern/GHOST_WindowCocoa.mm | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/intern/ghost/intern/GHOST_WindowCocoa.mm b/intern/ghost/intern/GHOST_WindowCocoa.mm index 10ab05a0de1..278147c5622 100644 --- a/intern/ghost/intern/GHOST_WindowCocoa.mm +++ b/intern/ghost/intern/GHOST_WindowCocoa.mm @@ -411,17 +411,17 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(GHOST_SystemCocoa *systemCocoa, NSTIFFPboardType, nil]]; - if (state != GHOST_kWindowStateFullScreen) { + if (is_dialog && parentWindow) { + [parentWindow->getCocoaWindow() addChildWindow:m_window ordered:NSWindowAbove]; + [m_window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary]; + } + else if (state != GHOST_kWindowStateFullScreen) { [m_window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary]; } if (state == GHOST_kWindowStateFullScreen) setState(GHOST_kWindowStateFullScreen); - if (is_dialog && parentWindow) { - [parentWindow->getCocoaWindow() addChildWindow:m_window ordered:NSWindowAbove]; - } - setNativePixelSize(); [pool drain]; |