diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-11-09 20:05:09 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-11-09 20:05:09 +0100 |
commit | 03d97977b1e108212a0fe4e52376d7799866646d (patch) | |
tree | fa135dcdec6a21259c81a297c47030db330d5644 /platform | |
parent | b06fe0d57426eeaede3a768dbaedc608527cb9fc (diff) | |
parent | 4fda7e14be98d5c2697d269bc27c984429163870 (diff) | |
download | redot-engine-03d97977b1e108212a0fe4e52376d7799866646d.tar.gz |
Merge pull request #84649 from bruvzg/mac_fs_fs_switch
[macOS] Fix fullscreen <-> exclusive fullscreen transition.
Diffstat (limited to 'platform')
-rw-r--r-- | platform/macos/display_server_macos.mm | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm index 4b545966d2..d76e41f61c 100644 --- a/platform/macos/display_server_macos.mm +++ b/platform/macos/display_server_macos.mm @@ -3282,6 +3282,18 @@ void DisplayServerMacOS::window_set_mode(WindowMode p_mode, WindowID p_window) { } break; case WINDOW_MODE_EXCLUSIVE_FULLSCREEN: case WINDOW_MODE_FULLSCREEN: { + if (p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN || p_mode == WINDOW_MODE_FULLSCREEN) { + if (p_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) { + const NSUInteger presentationOptions = NSApplicationPresentationHideDock | NSApplicationPresentationHideMenuBar; + [NSApp setPresentationOptions:presentationOptions]; + wd.exclusive_fullscreen = true; + } else { + wd.exclusive_fullscreen = false; + update_presentation_mode(); + } + return; + } + [(NSWindow *)wd.window_object setLevel:NSNormalWindowLevel]; _set_window_per_pixel_transparency_enabled(true, p_window); if (wd.resize_disabled) { // Restore resize disabled. @@ -3335,6 +3347,7 @@ void DisplayServerMacOS::window_set_mode(WindowMode p_mode, WindowID p_window) { wd.exclusive_fullscreen = true; } else { wd.exclusive_fullscreen = false; + update_presentation_mode(); } } break; case WINDOW_MODE_MAXIMIZED: { |