Revision: 15328
          http://sourceforge.net/p/skim-app/code/15328
Author:   hofman
Date:     2025-05-30 09:18:25 +0000 (Fri, 30 May 2025)
Log Message:
-----------
Keep saved window for fullscreen animation as shortly as possible, retain it by 
the completion handler block

Modified Paths:
--------------
    trunk/SKMainWindowController_FullScreen.m

Modified: trunk/SKMainWindowController_FullScreen.m
===================================================================
--- trunk/SKMainWindowController_FullScreen.m   2025-05-30 09:02:00 UTC (rev 
15327)
+++ trunk/SKMainWindowController_FullScreen.m   2025-05-30 09:18:25 UTC (rev 
15328)
@@ -462,9 +462,8 @@
     }
 }
 
-- (void)displayStaticContentForWindowOrdered:(NSWindowOrderingMode)place {
+- (void)displayStaticContentInWindow:(NSWindow *)displayWindow 
ordered:(NSWindowOrderingMode)place {
     NSWindow *window = [self window];
-    NSWindow *displayWindow = savedNormalWindow;
     NSRect frame = [window frame];
     CALayer *layer = [CALayer layer];
     CGImageRef cgImage = CGWindowListCreateImage(CGRectNull, 
kCGWindowListOptionIncludingWindow, (CGWindowID)[window windowNumber], 
kCGWindowImageBoundsIgnoreFraming | kCGWindowImageBestResolution);
@@ -610,7 +609,9 @@
     if ([[NSUserDefaults standardUserDefaults] 
boolForKey:AppleMenuBarVisibleInFullscreenKey])
         frame.size.height -= [[NSApp mainMenu] menuBarHeight] ?: 24.0;
     if (savedNormalWindow != nil) {
-        [self displayStaticContentForWindowOrdered:NSWindowBelow];
+        NSWindow *displayWindow = savedNormalWindow;
+        savedNormalWindow = nil;
+        [self displayStaticContentInWindow:displayWindow 
ordered:NSWindowBelow];
         [(SKMainWindow *)window setDisableConstrainedFrame:YES];
         [window setFrame:frame display:YES];
         [self window:window willBecomeFullScreen:YES];
@@ -622,8 +623,7 @@
                 [[window animator] setAlphaValue:1.0];
             }
             completionHandler:^{
-                [savedNormalWindow orderOut:nil];
-                savedNormalWindow = nil;
+                [displayWindow orderOut:nil];
             }];
     } else {
         [(SKMainWindow *)window setDisableConstrainedFrame:YES];
@@ -681,7 +681,9 @@
     NSRect frame = NSRectFromString([savedNormalSetup 
objectForKey:MAINWINDOWFRAME_KEY]);
     if (savedNormalWindow != nil) {
         BOOL covered = NSContainsRect([window frame], frame);
-        [self displayStaticContentForWindowOrdered:NSWindowAbove];
+        NSWindow *displayWindow = savedNormalWindow;
+        savedNormalWindow = nil;
+        [self displayStaticContentInWindow:displayWindow 
ordered:NSWindowAbove];
         [window setStyleMask:[window styleMask] & 
~NSWindowStyleMaskFullScreen];
         setAlphaValueOfTitleBarControls(window, 1.0, NO);
         [window setFrame:frame display:YES];
@@ -695,8 +697,7 @@
                 [[savedNormalWindow animator] setAlphaValue:0.0];
             }
             completionHandler:^{
-                [savedNormalWindow orderOut:nil];
-                savedNormalWindow = nil;
+                [displayWindow orderOut:nil];
             }];
     } else {
         NSRect startFrame = [window frame];

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to