Revision: 16078
          http://sourceforge.net/p/skim-app/code/16078
Author:   hofman
Date:     2026-03-19 16:48:36 +0000 (Thu, 19 Mar 2026)
Log Message:
-----------
reorganize setup for fullscreen animation

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

Modified: trunk/SKMainWindowController_FullScreen.m
===================================================================
--- trunk/SKMainWindowController_FullScreen.m   2026-03-19 14:45:00 UTC (rev 
16077)
+++ trunk/SKMainWindowController_FullScreen.m   2026-03-19 16:48:36 UTC (rev 
16078)
@@ -619,30 +619,33 @@
     NSWindow *displayWindow = savedNormalWindow;
     savedNormalWindow = nil;
     [self displayStaticContentInWindow:displayWindow ordered:NSWindowBelow];
-    NSTitlebarAccessoryViewController *noteToolbar = nil;
+    BOOL showToolbarWindow = [[NSUserDefaults standardUserDefaults] 
boolForKey:SKAutoHideToolbarInFullScreenKey] == NO;
+    CGFloat offset = 0.0;
+    BOOL showNoteToolbar = NO;
     CALayer *blackLayer = nil;
-    BOOL showToolbarWindow = [[NSUserDefaults standardUserDefaults] 
boolForKey:SKAutoHideToolbarInFullScreenKey] == NO;
-    CGFloat accessoryHeight = 0.0;
-    if (showToolbarWindow && [[window toolbar] isVisible] == NO) {
-        for (NSTitlebarAccessoryViewController *accessory in [window 
titlebarAccessoryViewControllers]) {
-            if ([accessory layoutAttribute] == NSLayoutAttributeBottom)
-                accessoryHeight += [accessory fullScreenMinHeight];
-        }
-        if (accessoryHeight <= 0.0)
-            showToolbarWindow = NO;
-    }
     if (showToolbarWindow) {
-        CGFloat offset = 0.0;
-        if (accessoryHeight > 0.0) {
-            offset = NSHeight([window frame]) - NSHeight([window 
contentLayoutRect]) - accessoryHeight;
-        } else {
+        if ([[window toolbar] isVisible]) {
             offset = fullScreenOffset(window);
-            NSUInteger i = noteToolbarController && [noteToolbarController 
fullScreenMinHeight] <= 0.0 ? [[window titlebarAccessoryViewControllers] 
indexOfObject:noteToolbarController] : NSNotFound;
-            if (i != NSNotFound) {
-                noteToolbar = noteToolbarController;
-                [window removeTitlebarAccessoryViewControllerAtIndex:i];
+            if (noteToolbarController && [noteToolbarController isHidden] == 
NO && [noteToolbarController fullScreenMinHeight] <= 0.0 && [[window 
titlebarAccessoryViewControllers] containsObject:noteToolbarController]) {
+                showNoteToolbar = YES;
+                [noteToolbarController setHidden:YES];
             }
+            for (NSView *view in [[[window 
standardWindowButton:NSWindowCloseButton] superview] subviews]) {
+                if ([view isKindOfClass:[NSControl class]])
+                    [view setAlphaValue:0.0];
+            }
+        } else {
+            for (NSTitlebarAccessoryViewController *accessory in [window 
titlebarAccessoryViewControllers]) {
+                if ([accessory isHidden] == NO && [accessory layoutAttribute] 
== NSLayoutAttributeBottom)
+                    offset -= [accessory fullScreenMinHeight];
+            }
+            if (offset < 0.0)
+                offset += NSHeight([window frame]) - NSHeight([window 
contentLayoutRect]);
+            else
+                showToolbarWindow = NO;
         }
+    }
+    if (showToolbarWindow) {
         frame.size.height += offset;
         [(SKMainWindow *)window setFrameWithoutConstrain:frame];
         if (showMenuBarInFullScreen && offset > 0.0) {
@@ -652,12 +655,6 @@
             [blackLayer setFrame:SKSliceRect([window 
convertRectFromScreen:frame], offset, NSRectEdgeMaxY)];
             [[[[window contentView] superview] layer] addSublayer:blackLayer];
         }
-        if (accessoryHeight <= 0.0) {
-            for (NSView *view in [[[window 
standardWindowButton:NSWindowCloseButton] superview] subviews]) {
-                if ([view isKindOfClass:[NSControl class]])
-                    [view setAlphaValue:0.0];
-            }
-        }
         [self windowWillEnterFullScreenStyle:window];
     } else {
         [window setStyleMask:[window styleMask] | NSWindowStyleMaskFullScreen];
@@ -671,8 +668,8 @@
         completionHandler:^{
             [displayWindow orderOut:nil];
             [blackLayer removeFromSuperlayer];
-            if (noteToolbar)
-                [window addTitlebarAccessoryViewController:noteToolbar];
+            if (showNoteToolbar)
+                [noteToolbarController setHidden:NO];
         }];
 }
 

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



_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to