Revision: 15346
          http://sourceforge.net/p/skim-app/code/15346
Author:   hofman
Date:     2025-06-02 14:35:22 +0000 (Mon, 02 Jun 2025)
Log Message:
-----------
directly set fullscreen style mask bit for animation when not showing the 
toolbar on full screen

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

Modified: trunk/SKMainWindowController_FullScreen.m
===================================================================
--- trunk/SKMainWindowController_FullScreen.m   2025-06-02 09:35:57 UTC (rev 
15345)
+++ trunk/SKMainWindowController_FullScreen.m   2025-06-02 14:35:22 UTC (rev 
15346)
@@ -608,10 +608,10 @@
 
 - (void)window:(NSWindow *)window 
startCustomAnimationToEnterFullScreenWithDuration:(NSTimeInterval)duration {
     [savedNormalSetup setObject:@YES forKey:USECUSTOMANIMATION_KEY];
-    if (fullScreenToolbarOffset <= 0.0 && autoHideToolbarInFullScreen() == NO 
&& [[window toolbar] isVisible])
+    BOOL showToolbarInFullscreeen = [[window toolbar] isVisible] && 
autoHideToolbarInFullScreen() == NO;
+    if (fullScreenToolbarOffset <= 0.0 && showToolbarInFullscreeen)
         fullScreenToolbarOffset = toolbarViewOffset(window);
-    CGFloat offset = fullScreenOffset(window);
-    NSRect frame = SKShrinkRect([[window screen] frame], -offset, NSMaxYEdge);
+    NSRect frame = [[window screen] frame];
     if ([[NSUserDefaults standardUserDefaults] 
boolForKey:AppleMenuBarVisibleInFullscreenKey])
         frame.size.height -= [[NSApp mainMenu] menuBarHeight] ?: 24.0;
     if (savedNormalWindow != nil) {
@@ -619,21 +619,29 @@
         savedNormalWindow = nil;
         [self displayStaticContentInWindow:displayWindow 
ordered:NSWindowBelow];
         NSTitlebarAccessoryViewController *noteToolbar = nil;
-        NSUInteger i = noteToolbarController ? [[window 
titlebarAccessoryViewControllers] indexOfObject:noteToolbarController] : 
NSNotFound;
-        if (i != NSNotFound) {
-            noteToolbar = noteToolbarController;
-            [window removeTitlebarAccessoryViewControllerAtIndex:i];
+        CALayer *blackLayer = nil;
+        if (showToolbarInFullscreeen) {
+            CGFloat offset = fullScreenOffset(window);
+            frame.size.height += offset;
+            NSUInteger i = noteToolbarController ? [[window 
titlebarAccessoryViewControllers] indexOfObject:noteToolbarController] : 
NSNotFound;
+            if (i != NSNotFound) {
+                noteToolbar = noteToolbarController;
+                [window removeTitlebarAccessoryViewControllerAtIndex:i];
+            }
+            [(SKMainWindow *)window setDisableConstrainedFrame:YES];
+            [window setFrame:frame display:YES];
+            [(SKMainWindow *)window setDisableConstrainedFrame:NO];
+            blackLayer = [CALayer layer];
+            [blackLayer 
setBackgroundColor:CGColorGetConstantColor(kCGColorBlack)];
+            [blackLayer setZPosition:1.0];
+            [blackLayer setFrame:SKSliceRect([window 
convertRectFromScreen:frame], offset, NSMaxYEdge)];
+            [[[[window contentView] superview] layer] addSublayer:blackLayer];
+            setAlphaValueOfTitleBarControls(window, 0.0, NO);
+            [self windowWillEnterFullScreenStyle:window];
+        } else {
+            [window setStyleMask:[window styleMask] | 
NSWindowStyleMaskFullScreen];
+            [window setFrame:frame display:YES];
         }
-        [(SKMainWindow *)window setDisableConstrainedFrame:YES];
-        [window setFrame:frame display:YES];
-        CALayer *blackLayer = [CALayer layer];
-        [blackLayer setBackgroundColor:CGColorGetConstantColor(kCGColorBlack)];
-        [blackLayer setZPosition:1.0];
-        [blackLayer setFrame:SKSliceRect([window convertRectFromScreen:frame], 
offset, NSMaxYEdge)];
-        [[[[window contentView] superview] layer] addSublayer:blackLayer];
-        [self windowWillEnterFullScreenStyle:window];
-        setAlphaValueOfTitleBarControls(window, 0.0, NO);
-        [(SKMainWindow *)window setDisableConstrainedFrame:NO];
         [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
                 [context setDuration:duration];
                 [context setTimingFunction:[CAMediaTimingFunction 
functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
@@ -640,12 +648,13 @@
                 [[window animator] setAlphaValue:1.0];
             }
             completionHandler:^{
+                [displayWindow orderOut:nil];
                 [blackLayer removeFromSuperlayer];
-                [displayWindow orderOut:nil];
                 if (noteToolbar)
                     [window addTitlebarAccessoryViewController:noteToolbar];
             }];
     } else {
+        frame.size.height += fullScreenOffset(window);
         [(SKMainWindow *)window setDisableConstrainedFrame:YES];
         [self windowWillEnterFullScreenStyle:window];
         [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {

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