Module: wine Branch: master Commit: ce5a87b1efeab009b32f4ccdfcdec46118723f29 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ce5a87b1efeab009b32f4ccdfc...
Author: Ken Thomases ken@codeweavers.com Date: Fri Jan 10 03:11:33 2014 -0600
winemac: Simplify display mode code.
When originalDisplayModes has entries, the app is active. When the app is active, latentDisplayModes is empty.
---
dlls/winemac.drv/cocoa_app.m | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-)
diff --git a/dlls/winemac.drv/cocoa_app.m b/dlls/winemac.drv/cocoa_app.m index 13d9c87..d499fd1 100644 --- a/dlls/winemac.drv/cocoa_app.m +++ b/dlls/winemac.drv/cocoa_app.m @@ -709,7 +709,6 @@ int macdrv_err_on; - (BOOL) setMode:(CGDisplayModeRef)mode forDisplay:(CGDirectDisplayID)displayID { BOOL ret = FALSE; - BOOL active = [NSApp isActive]; NSNumber* displayIDKey = [NSNumber numberWithUnsignedInt:displayID]; CGDisplayModeRef originalMode;
@@ -719,39 +718,28 @@ int macdrv_err_on; { if ([originalDisplayModes count] == 1) // If this is the last changed display, do a blanket reset { - if (active) - { - CGRestorePermanentDisplayConfiguration(); - if (!displaysCapturedForFullscreen) - CGReleaseAllDisplays(); - } + CGRestorePermanentDisplayConfiguration(); + if (!displaysCapturedForFullscreen) + CGReleaseAllDisplays(); [originalDisplayModes removeAllObjects]; - [latentDisplayModes removeAllObjects]; ret = TRUE; } else // ... otherwise, try to restore just the one display { - if (active) + mode = [self modeMatchingMode:mode forDisplay:displayID]; + if (mode && CGDisplaySetDisplayMode(displayID, mode, NULL) == CGDisplayNoErr) { - mode = [self modeMatchingMode:mode forDisplay:displayID]; - if (mode) - ret = (CGDisplaySetDisplayMode(displayID, mode, NULL) == CGDisplayNoErr); - } - else - { - [latentDisplayModes removeObjectForKey:displayIDKey]; + [originalDisplayModes removeObjectForKey:displayIDKey]; ret = TRUE; } - if (ret) - [originalDisplayModes removeObjectForKey:displayIDKey]; } } else { - CGDisplayModeRef currentMode = NULL; + BOOL active = [NSApp isActive]; + CGDisplayModeRef currentMode;
- if (!active) - currentMode = CGDisplayModeRetain((CGDisplayModeRef)[latentDisplayModes objectForKey:displayIDKey]); + currentMode = CGDisplayModeRetain((CGDisplayModeRef)[latentDisplayModes objectForKey:displayIDKey]); if (!currentMode) currentMode = CGDisplayCopyDisplayMode(displayID); if (!currentMode) // Invalid display ID @@ -790,7 +778,6 @@ int macdrv_err_on; else if (![originalDisplayModes count]) { CGRestorePermanentDisplayConfiguration(); - [latentDisplayModes removeAllObjects]; if (!displaysCapturedForFullscreen) CGReleaseAllDisplays(); }