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
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit