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