summaryrefslogtreecommitdiffstats
path: root/platform
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-11-09 20:05:09 +0100
committerRémi Verschelde <rverschelde@gmail.com>2023-11-09 20:05:09 +0100
commit03d97977b1e108212a0fe4e52376d7799866646d (patch)
treefa135dcdec6a21259c81a297c47030db330d5644 /platform
parentb06fe0d57426eeaede3a768dbaedc608527cb9fc (diff)
parent4fda7e14be98d5c2697d269bc27c984429163870 (diff)
downloadredot-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.mm13
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: {