summaryrefslogtreecommitdiffstats
path: root/platform
diff options
context:
space:
mode:
authorbruvzg <7645683+bruvzg@users.noreply.github.com>2023-11-08 21:23:54 +0200
committerbruvzg <7645683+bruvzg@users.noreply.github.com>2023-11-09 08:02:56 +0200
commit4fda7e14be98d5c2697d269bc27c984429163870 (patch)
tree76bcf08cf0a0c74ab0bdb654b24e5d5a60aea9f5 /platform
parente5bacbc4716ce5b54bc2ab8b3053cd5e22ffe446 (diff)
downloadredot-engine-4fda7e14be98d5c2697d269bc27c984429163870.tar.gz
[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 6015aa96cd..3bdb387b8c 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: {