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