diff --git a/src/cocoa_window.m b/src/cocoa_window.m index 17d2b2061..38cc25d49 100644 --- a/src/cocoa_window.m +++ b/src/cocoa_window.m @@ -1272,12 +1272,30 @@ void _glfwPlatformMaximizeWindow(_GLFWwindow* window) void _glfwPlatformShowWindow(_GLFWwindow* window) { - [window->ns.object orderFront:nil]; + if (window->monitor) + { + [window->ns.object makeKeyAndOrderFront:window->ns.object]; + + NSApplicationPresentationOptions options = + NSApplicationPresentationHideDock + + NSApplicationPresentationHideMenuBar + + NSApplicationPresentationDisableProcessSwitching + + NSApplicationPresentationDisableHideApplication; + [NSApp setPresentationOptions:options]; + } + else + { + [window->ns.object orderFront:window->ns.object]; + + NSApplicationPresentationOptions options = + NSApplicationPresentationDefault; + [NSApp setPresentationOptions:options]; + } } void _glfwPlatformHideWindow(_GLFWwindow* window) { - [window->ns.object orderOut:nil]; + [window->ns.object orderOut:window->ns.object]; } void _glfwPlatformRequestWindowAttention(_GLFWwindow* window) @@ -1293,7 +1311,23 @@ void _glfwPlatformFocusWindow(_GLFWwindow* window) // should probably not be done every time any window is shown [NSApp activateIgnoringOtherApps:YES]; - [window->ns.object makeKeyAndOrderFront:nil]; + [window->ns.object makeKeyAndOrderFront:window->ns.object]; + + if (window->monitor) + { + NSApplicationPresentationOptions options = + NSApplicationPresentationHideDock + + NSApplicationPresentationHideMenuBar + + NSApplicationPresentationDisableProcessSwitching + + NSApplicationPresentationDisableHideApplication; + [NSApp setPresentationOptions:options]; + } + else + { + NSApplicationPresentationOptions options = + NSApplicationPresentationDefault; + [NSApp setPresentationOptions:options]; + } } void _glfwPlatformSetWindowMonitor(_GLFWwindow* window, @@ -1395,6 +1429,22 @@ void _glfwPlatformSetWindowMonitor(_GLFWwindow* window, [window->ns.object setHasShadow:YES]; } + + if (window->monitor) + { + NSApplicationPresentationOptions options = + NSApplicationPresentationHideDock + + NSApplicationPresentationHideMenuBar + + NSApplicationPresentationDisableProcessSwitching + + NSApplicationPresentationDisableHideApplication; + [NSApp setPresentationOptions:options]; + } + else + { + NSApplicationPresentationOptions options = + NSApplicationPresentationDefault; + [NSApp setPresentationOptions:options]; + } } int _glfwPlatformWindowFocused(_GLFWwindow* window)