Revision: 15201
          http://sourceforge.net/p/skim-app/code/15201
Author:   hofman
Date:     2025-05-12 16:16:57 +0000 (Mon, 12 May 2025)
Log Message:
-----------
Set flag onm transition view instead of controller, so we have no need to 
reference self from block

Modified Paths:
--------------
    trunk/SKTransitionController.h
    trunk/SKTransitionController.m

Modified: trunk/SKTransitionController.h
===================================================================
--- trunk/SKTransitionController.h      2025-05-12 16:10:40 UTC (rev 15200)
+++ trunk/SKTransitionController.h      2025-05-12 16:16:57 UTC (rev 15201)
@@ -46,7 +46,6 @@
 
 @interface SKTransitionController : NSObject {
     SKTransitionView *transitionView;
-    BOOL animating;
     BOOL shouldScale;
     
     SKTransitionInfo *transition;

Modified: trunk/SKTransitionController.m
===================================================================
--- trunk/SKTransitionController.m      2025-05-12 16:10:40 UTC (rev 15200)
+++ trunk/SKTransitionController.m      2025-05-12 16:16:57 UTC (rev 15201)
@@ -60,21 +60,19 @@
     CIFilter *filter;
     id<MTLCommandQueue> commandQueue;
     CIContext *context;
+    BOOL inUse;
 }
 @property (nonatomic) CGRect extent;
 @property (nonatomic, strong) CIFilter *filter;
 @property (nonatomic) CGFloat progress;
+@property (nonatomic, getter=isInUse) BOOL inUse;
 @end
 
 #pragma mark -
 
-@interface SKTransitionController ()
-@property (nonatomic, getter=isAnimating) BOOL animating;
-@end
-
 @implementation SKTransitionController
 
-@synthesize transition, pageTransitions, shouldScale, animating;
+@synthesize transition, pageTransitions, shouldScale;
 
 static inline CGRect scaleRect(NSRect rect, CGFloat scale) {
     return CGRectMake(scale * NSMinX(rect), scale * NSMinY(rect), scale * 
NSWidth(rect), scale * NSHeight(rect));
@@ -172,7 +170,7 @@
 }
 
 - (SKTransitionAnimation)animationAtIndex:(NSUInteger)idx forView:(NSView 
*)view {
-    if ([self isAnimating])
+    if ([transitionView isInUse])
         return nil;
     
     SKTransitionInfo *currentTransition = transition;
@@ -182,8 +180,6 @@
     if ([currentTransition style] == SKNoTransition)
         return nil;
     
-    [self setAnimating:YES];
-    
     CIImage *initialImage = currentImageForView(view);
     
     NSRect bounds = [view bounds];
@@ -194,10 +190,10 @@
         transitionView = [[SKTransitionView alloc] initWithFrame:bounds];
     else
         [transitionView setFrame:bounds];
+    [transitionView setInUse:YES];
+    
     SKTransitionView *transView = transitionView;
     
-    __weak SKTransitionController *weakSelf = self;
-    
     return ^(NSRect rect, BOOL forward, void (^completionHandler)(void)){
         
         CIImage *finalImage = currentImageForView(view);
@@ -217,7 +213,7 @@
             } completionHandler:^{
                 [transView removeFromSuperview];
                 [transView setFilter:nil];
-                [weakSelf setAnimating:NO];
+                [transView setInUse:NO];
                 if (completionHandler)
                     completionHandler();
             }];
@@ -231,7 +227,7 @@
 
 @implementation SKTransitionView
 
-@synthesize extent, filter;
+@synthesize extent, filter, inUse;
 @dynamic progress;
 
 - (instancetype)initWithFrame:(NSRect)frameRect {

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