mirror of
https://github.com/glfw/glfw.git
synced 2025-10-03 21:30:57 +00:00
Restore previous context in _glfwPlatformShow/UnhideWindow() for Cocoa
[window->ns.object makeKeyAndOrderFront:nil] and [window->ns.object orderFront:nil] seem to implicitly make the context of window current on OS X Yosemite. Hence we get the current context before sending these messages, and restore them afterward.
This commit is contained in:
parent
d43776502b
commit
8b042c28e2
@ -1061,12 +1061,16 @@ void _glfwPlatformShowWindow(_GLFWwindow* window)
|
||||
// should probably not be done every time any window is shown
|
||||
[NSApp activateIgnoringOtherApps:YES];
|
||||
|
||||
_GLFWwindow* previous = _glfwPlatformGetCurrentContext();
|
||||
[window->ns.object makeKeyAndOrderFront:nil];
|
||||
_glfwPlatformMakeContextCurrent(previous);
|
||||
}
|
||||
|
||||
void _glfwPlatformUnhideWindow(_GLFWwindow* window)
|
||||
{
|
||||
_GLFWwindow* previous = _glfwPlatformGetCurrentContext();
|
||||
[window->ns.object orderFront:nil];
|
||||
_glfwPlatformMakeContextCurrent(previous);
|
||||
}
|
||||
|
||||
void _glfwPlatformHideWindow(_GLFWwindow* window)
|
||||
|
@ -238,6 +238,9 @@ GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height,
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
_glfwPlatformSwapBuffers(window);
|
||||
|
||||
// Restore the previously current context (or NULL)
|
||||
_glfwPlatformMakeContextCurrent(previous);
|
||||
|
||||
if (wndconfig.monitor)
|
||||
{
|
||||
int width, height;
|
||||
@ -259,9 +262,6 @@ GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height,
|
||||
}
|
||||
}
|
||||
|
||||
// Restore the previously current context (or NULL)
|
||||
_glfwPlatformMakeContextCurrent(previous);
|
||||
|
||||
return (GLFWwindow*) window;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user