Command-tabbing fix for issue #848

This commit is contained in:
IntellectualKitty 2016-12-27 21:38:12 -07:00
parent 0f488ac286
commit 8f80ec6dda
2 changed files with 52 additions and 1 deletions

View File

@ -128,6 +128,7 @@ information on what to include when reporting a bug.
- [Cocoa] Bugfix: Disabled use of deprecated `CGDisplayModeCopyPixelEncoding` - [Cocoa] Bugfix: Disabled use of deprecated `CGDisplayModeCopyPixelEncoding`
function on macOS 10.12+ function on macOS 10.12+
- [Cocoa] Bugfix: Running in AppSandbox would emit warnings (#816,#882) - [Cocoa] Bugfix: Running in AppSandbox would emit warnings (#816,#882)
- [Cocoa] Bugfix: Command-tabbing issues with fullscreen windows (#848)
- [EGL] Added support for `EGL_KHR_get_all_proc_addresses` (#871) - [EGL] Added support for `EGL_KHR_get_all_proc_addresses` (#871)

View File

@ -1248,7 +1248,25 @@ void _glfwPlatformMaximizeWindow(_GLFWwindow* window)
void _glfwPlatformShowWindow(_GLFWwindow* window) void _glfwPlatformShowWindow(_GLFWwindow* window)
{ {
[window->ns.object orderFront:nil]; if (window->monitor)
{
[window->ns.object makeKeyAndOrderFront:nil];
NSApplicationPresentationOptions options =
NSApplicationPresentationHideDock +
NSApplicationPresentationHideMenuBar +
NSApplicationPresentationDisableProcessSwitching +
NSApplicationPresentationDisableHideApplication;
[NSApp setPresentationOptions:options];
}
else
{
[window->ns.object orderFront:nil];
NSApplicationPresentationOptions options =
NSApplicationPresentationDefault;
[NSApp setPresentationOptions:options];
}
} }
void _glfwPlatformHideWindow(_GLFWwindow* window) void _glfwPlatformHideWindow(_GLFWwindow* window)
@ -1265,6 +1283,22 @@ void _glfwPlatformFocusWindow(_GLFWwindow* window)
[NSApp activateIgnoringOtherApps:YES]; [NSApp activateIgnoringOtherApps:YES];
[window->ns.object makeKeyAndOrderFront:nil]; [window->ns.object makeKeyAndOrderFront:nil];
if (window->monitor)
{
NSApplicationPresentationOptions options =
NSApplicationPresentationHideDock +
NSApplicationPresentationHideMenuBar +
NSApplicationPresentationDisableProcessSwitching +
NSApplicationPresentationDisableHideApplication;
[NSApp setPresentationOptions:options];
}
else
{
NSApplicationPresentationOptions options =
NSApplicationPresentationDefault;
[NSApp setPresentationOptions:options];
}
} }
void _glfwPlatformSetWindowMonitor(_GLFWwindow* window, void _glfwPlatformSetWindowMonitor(_GLFWwindow* window,
@ -1362,6 +1396,22 @@ void _glfwPlatformSetWindowMonitor(_GLFWwindow* window,
[window->ns.object setHasShadow:YES]; [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) int _glfwPlatformWindowFocused(_GLFWwindow* window)