Fixed invalid video mode being restored.

This commit is contained in:
Camilla Berglund 2014-03-10 12:42:30 +01:00
parent 87dd7b89f5
commit 78f1b8bd15
1 changed files with 10 additions and 7 deletions

View File

@ -200,10 +200,8 @@ GLboolean _glfwSetVideoMode(_GLFWmonitor* monitor, const GLFWvidmode* desired)
monitor->ns.previousMode = CGDisplayCopyDisplayMode(monitor->ns.displayID);
CGDisplayFadeReservationToken token = beginFadeReservation();
CGDisplayCapture(monitor->ns.displayID);
CGDisplaySetDisplayMode(monitor->ns.displayID, native, NULL);
endFadeReservation(token);
}
@ -224,12 +222,17 @@ GLboolean _glfwSetVideoMode(_GLFWmonitor* monitor, const GLFWvidmode* desired)
//
void _glfwRestoreVideoMode(_GLFWmonitor* monitor)
{
CGDisplayFadeReservationToken token = beginFadeReservation();
if (monitor->ns.previousMode)
{
CGDisplayFadeReservationToken token = beginFadeReservation();
CGDisplaySetDisplayMode(monitor->ns.displayID,
monitor->ns.previousMode, NULL);
CGDisplayRelease(monitor->ns.displayID);
endFadeReservation(token);
CGDisplaySetDisplayMode(monitor->ns.displayID, monitor->ns.previousMode, NULL);
CGDisplayRelease(monitor->ns.displayID);
endFadeReservation(token);
CGDisplayModeRelease(monitor->ns.previousMode);
monitor->ns.previousMode = NULL;
}
}