Skip to content

Commit

Permalink
Merge pull request #82423 from bruvzg/mac_ex_fs
Browse files Browse the repository at this point in the history
[macOS] Check all exclusive fullscreen windows before setting presentation mode.
  • Loading branch information
akien-mga committed Oct 3, 2023
2 parents 30bc077 + b7b5fbe commit be6a09b
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
1 change: 1 addition & 0 deletions platform/macos/display_server_macos.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ class DisplayServerMacOS : public DisplayServer {
WindowID _get_focused_window_or_popup() const;
void mouse_enter_window(WindowID p_window);
void mouse_exit_window(WindowID p_window);
void update_presentation_mode();

void window_destroy(WindowID p_window);
void window_resize(WindowID p_window, int p_width, int p_height);
Expand Down
12 changes: 11 additions & 1 deletion platform/macos/display_server_macos.mm
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,7 @@
}
#endif
windows.erase(p_window);
update_presentation_mode();
}

void DisplayServerMacOS::window_resize(WindowID p_window, int p_width, int p_height) {
Expand Down Expand Up @@ -2917,6 +2918,15 @@
return wd.max_size;
}

void DisplayServerMacOS::update_presentation_mode() {
for (const KeyValue<WindowID, WindowData> &wd : windows) {
if (wd.value.fullscreen && wd.value.exclusive_fullscreen) {
return;
}
}
[NSApp setPresentationOptions:NSApplicationPresentationDefault];
}

void DisplayServerMacOS::window_set_min_size(const Size2i p_size, WindowID p_window) {
_THREAD_SAFE_METHOD_

Expand Down Expand Up @@ -3027,7 +3037,7 @@
[wd.window_object toggleFullScreen:nil];

if (old_mode == WINDOW_MODE_EXCLUSIVE_FULLSCREEN) {
[NSApp setPresentationOptions:NSApplicationPresentationDefault];
update_presentation_mode();
}

wd.fullscreen = false;
Expand Down
2 changes: 1 addition & 1 deletion platform/macos/godot_window_delegate.mm
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ - (void)windowDidExitFullScreen:(NSNotification *)notification {

DisplayServerMacOS::WindowData &wd = ds->get_window(window_id);
if (wd.exclusive_fullscreen) {
[NSApp setPresentationOptions:NSApplicationPresentationDefault];
ds->update_presentation_mode();
}

wd.fullscreen = false;
Expand Down

0 comments on commit be6a09b

Please sign in to comment.