Ken Thomases : winemac: Simplify display mode code.

Alexandre Julliard julliard at winehq.org
Fri Jan 10 13:22:45 CST 2014


Module: wine
Branch: master
Commit: ce5a87b1efeab009b32f4ccdfcdec46118723f29
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ce5a87b1efeab009b32f4ccdfcdec46118723f29

Author: Ken Thomases <ken at 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();
                     }




More information about the wine-cvs mailing list