summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--platform/macos/display_server_macos.mm15
1 files changed, 12 insertions, 3 deletions
diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm
index 9d6531a2b5..b7a9fb1bbd 100644
--- a/platform/macos/display_server_macos.mm
+++ b/platform/macos/display_server_macos.mm
@@ -2084,12 +2084,21 @@ Size2i DisplayServerMacOS::window_get_max_size(WindowID p_window) const {
}
void DisplayServerMacOS::update_presentation_mode() {
+ bool has_fs_windows = false;
for (const KeyValue<WindowID, WindowData> &wd : windows) {
- if (wd.value.fullscreen && wd.value.exclusive_fullscreen) {
- return;
+ if (wd.value.fullscreen) {
+ if (wd.value.exclusive_fullscreen) {
+ return;
+ } else {
+ has_fs_windows = true;
+ }
}
}
- [NSApp setPresentationOptions:NSApplicationPresentationDefault];
+ if (has_fs_windows) {
+ [NSApp setPresentationOptions:NSApplicationPresentationAutoHideMenuBar | NSApplicationPresentationAutoHideDock | NSApplicationPresentationFullScreen];
+ } else {
+ [NSApp setPresentationOptions:NSApplicationPresentationDefault];
+ }
}
void DisplayServerMacOS::window_set_min_size(const Size2i p_size, WindowID p_window) {