Revision: 13394
          http://sourceforge.net/p/skim-app/code/13394
Author:   hofman
Date:     2023-03-20 09:55:16 +0000 (Mon, 20 Mar 2023)
Log Message:
-----------
static function to change alpha value of title bar controls for fullscreen 
transition

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

Modified: trunk/SKMainWindowController_FullScreen.m
===================================================================
--- trunk/SKMainWindowController_FullScreen.m   2023-03-19 16:04:13 UTC (rev 
13393)
+++ trunk/SKMainWindowController_FullScreen.m   2023-03-20 09:55:16 UTC (rev 
13394)
@@ -596,6 +596,12 @@
     return 0.0;
 }
 
+static inline void setAlphaValueOfTitleBarControls(NSWindow *window, CGFloat 
alpha, BOOL animate) {
+    for (NSView *view in [[[window standardWindowButton:NSWindowCloseButton] 
superview] subviews])
+        if ([view isKindOfClass:[NSControl class]])
+            [(animate ? (id)[view animator] : (id)view) setAlphaValue:alpha];
+}
+
 - (void)windowWillEnterFullScreen:(NSNotification *)notification {
     mwcFlags.isSwitchingFullScreen = 1;
     interactionMode = SKFullScreenMode;
@@ -632,9 +638,7 @@
         [self showStaticContentForWindow:window];
         [window setFrame:frame display:YES];
         [window orderWindow:NSWindowAbove relativeTo:animationWindow];
-        for (NSView *view in [[[window 
standardWindowButton:NSWindowCloseButton] superview] subviews])
-            if ([view isKindOfClass:[NSControl class]])
-                [view setAlphaValue:0.0];
+        setAlphaValueOfTitleBarControls(window, 0.0, NO);
         [(SKMainWindow *)window setDisableConstrainedFrame:NO];
         [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
                 [context setDuration:duration];
@@ -649,9 +653,7 @@
         [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
                 [context setDuration:duration - 0.02];
                 [[window animator] setFrame:frame display:YES];
-                for (NSView *view in [[[window 
standardWindowButton:NSWindowCloseButton] superview] subviews])
-                    if ([view isKindOfClass:[NSControl class]])
-                        [[view animator] setAlphaValue:0.0];
+                setAlphaValueOfTitleBarControls(window, 0.0, YES);
             }
             completionHandler:^{
                 [(SKMainWindow *)window setDisableConstrainedFrame:NO];
@@ -725,9 +727,7 @@
         [self showStaticContentForWindow:window];
         [animationWindow setLevel:NSStatusWindowLevel];
         [window setStyleMask:[window styleMask] & 
~NSWindowStyleMaskFullScreen];
-        for (NSView *view in [[[window 
standardWindowButton:NSWindowCloseButton] superview] subviews])
-            if ([view isKindOfClass:[NSControl class]])
-                [view setAlphaValue:1.0];
+        setAlphaValueOfTitleBarControls(window, 1.0, NO);
         [window setFrame:frame display:YES];
         [window setLevel:NSNormalWindowLevel];
         [window setAlphaValue:1.0];
@@ -743,17 +743,13 @@
     } else {
         [(SKMainWindow *)window setDisableConstrainedFrame:YES];
         [window setStyleMask:[window styleMask] & 
~NSWindowStyleMaskFullScreen];
-        for (NSView *view in [[[window 
standardWindowButton:NSWindowCloseButton] superview] subviews])
-            if ([view isKindOfClass:[NSControl class]])
-                [view setAlphaValue:0.0];
+        setAlphaValueOfTitleBarControls(window, 0.0, NO);
         [window setFrame:SKShrinkRect([[window screen] frame], 
-fullScreenOffset(window), NSMaxYEdge) display:YES];
         [window setLevel:NSStatusWindowLevel];
         [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
                 [context setDuration:duration];
                 [[window animator] setFrame:frame display:YES];
-                for (NSView *view in [[[window 
standardWindowButton:NSWindowCloseButton] superview] subviews])
-                    if ([view isKindOfClass:[NSControl class]])
-                        [[view animator] setAlphaValue:1.0];
+                setAlphaValueOfTitleBarControls(window, 1.0, YES);
             }
             completionHandler:^{
                 [(SKMainWindow *)window setDisableConstrainedFrame: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