Revision: 15352
          http://sourceforge.net/p/skim-app/code/15352
Author:   hofman
Date:     2025-06-03 09:50:22 +0000 (Tue, 03 Jun 2025)
Log Message:
-----------
convenience inline functions for conditions

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

Modified: trunk/SKMainWindowController_FullScreen.m
===================================================================
--- trunk/SKMainWindowController_FullScreen.m   2025-06-03 09:34:34 UTC (rev 
15351)
+++ trunk/SKMainWindowController_FullScreen.m   2025-06-03 09:50:22 UTC (rev 
15352)
@@ -475,7 +475,7 @@
     [layer setBounds:[[window contentView] bounds]];
     [layer setContentsScale:[window backingScaleFactor]];
     [layer setContents:CFBridgingRelease(cgImage)];
-    if (([window styleMask] & NSWindowStyleMaskFullScreen) != 0 && 
autoHideToolbarInFullScreen() == NO && [[window toolbar] isVisible]) {
+    if (([window styleMask] & NSWindowStyleMaskFullScreen) != 0 && 
showToolbarInFullScreen(window)) {
         for (NSWindow *tbWindow in [window childWindows]) {
             if ([NSStringFromClass([tbWindow class]) 
containsString:@"Toolbar"]) {
                 CGImageRef tbCgImage = CGWindowListCreateImage(CGRectNull, 
kCGWindowListOptionIncludingWindow, (CGWindowID)[tbWindow windowNumber], 
kCGWindowImageBoundsIgnoreFraming | kCGWindowImageBestResolution);
@@ -500,34 +500,32 @@
 
 #pragma mark NSWindowDelegate Full Screen Methods
 
-static inline BOOL autoHideToolbarInFullScreen() {
-    return [[NSUserDefaults standardUserDefaults] 
boolForKey:SKAutoHideToolbarInFullScreenKey];
+static inline BOOL showToolbarInFullScreen(NSWindow *window) {
+    return [[NSUserDefaults standardUserDefaults] 
boolForKey:SKAutoHideToolbarInFullScreenKey] == NO && (window == nil || 
[[window toolbar] isVisible]);
 }
 
+static inline BOOL hasUnifiedToolbar(NSWindow *window) {
+    if (@available(macOS 11.0, *))
+        return [window toolbarStyle] != NSWindowToolbarStyleExpanded;
+    return NO;
+}
+
 static inline CGFloat fullScreenOffset(NSWindow *window) {
-    if (autoHideToolbarInFullScreen()) {
+    if (showToolbarInFullScreen(window) == NO)
         return NSHeight([window frame]) - NSHeight([window contentLayoutRect]);
-    } else if ([[window toolbar] isVisible] == NO) {
-        return NSHeight([NSWindow frameRectForContentRect:NSZeroRect 
styleMask:NSWindowStyleMaskTitled]);
-    } else if (@available(macOS 11.0, *)) {
-        if ([window toolbarStyle] != NSWindowToolbarStyleExpanded)
-            return 0.0;
-        else if (fullScreenToolbarOffset > 0.0)
-            return fullScreenToolbarOffset;
-        else
-            return 16.0;
-    } else if (fullScreenToolbarOffset > 0.0) {
+    else if (hasUnifiedToolbar(window))
+        return 0.0;
+    else if (fullScreenToolbarOffset > 0.0)
         return fullScreenToolbarOffset;
-    } else {
+    else if (@available(macOS 11.0, *))
+        return 16.0;
+    else
         return 17.0;
-    }
 }
 
 static inline CGFloat toolbarViewOffset(NSWindow *window) {
-    if (@available(macOS 11.0, *)) {
-        if ([window toolbarStyle] != NSWindowToolbarStyleExpanded)
-            return 0.0;
-    }
+    if (hasUnifiedToolbar(window))
+        return 0.0;
     NSToolbar *toolbar = [window toolbar];
     NSView *view = nil;
     if ([toolbar displayMode] == NSToolbarDisplayModeLabelOnly) {
@@ -590,9 +588,10 @@
 }
 
 - (NSApplicationPresentationOptions)window:(NSWindow *)window 
willUseFullScreenPresentationOptions:(NSApplicationPresentationOptions)proposedOptions
 {
-    if (autoHideToolbarInFullScreen())
+    if (showToolbarInFullScreen(nil))
+        return proposedOptions;
+    else
         return proposedOptions | NSApplicationPresentationAutoHideToolbar;
-    return proposedOptions;
 }
 
 - (NSArray *)customWindowsToEnterFullScreenForWindow:(NSWindow *)window {
@@ -609,7 +608,7 @@
     [self displayStaticContentInWindow:displayWindow ordered:NSWindowBelow];
     NSTitlebarAccessoryViewController *noteToolbar = nil;
     CALayer *blackLayer = nil;
-    if ([[window toolbar] isVisible] && autoHideToolbarInFullScreen() == NO) {
+    if (showToolbarInFullScreen(window)) {
         if (fullScreenToolbarOffset <= 0.0)
             fullScreenToolbarOffset = toolbarViewOffset(window);
         CGFloat offset = fullScreenOffset(window);
@@ -650,7 +649,7 @@
 }
 
 - (void)windowDidEnterFullScreen:(NSNotification *)notification {
-    if (fullScreenToolbarOffset < 0.0 && autoHideToolbarInFullScreen() == NO 
&& [[[self window] toolbar] isVisible]) {
+    if (fullScreenToolbarOffset < 0.0 && showToolbarInFullScreen([self 
window])) {
         CGFloat toolbarItemOffset = toolbarViewOffset([self window]);
         if (toolbarItemOffset < 0.0)
             // save the offset for the next time, we may guess it wrong as it 
varies between OS versions

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