Revision: 12671 http://sourceforge.net/p/skim-app/code/12671 Author: hofman Date: 2022-01-01 22:41:47 +0000 (Sat, 01 Jan 2022) Log Message: ----------- pdfview always uses layers since 10.9, so we don't need an overlay window for sublayers
Modified Paths: -------------- trunk/SKPDFView.m Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2022-01-01 22:02:55 UTC (rev 12670) +++ trunk/SKPDFView.m 2022-01-01 22:41:47 UTC (rev 12671) @@ -3311,33 +3311,6 @@ #pragma mark Event handling -- (NSWindow *)newOverlayLayer:(CALayer *)layer { - NSWindow *overlay = nil; - BOOL wantsAdded = [layer isKindOfClass:[CAShapeLayer class]]; - [layer setContentsScale:[[self layer] contentsScale]]; - if (wantsAdded && [self wantsLayer]) { - [[self layer] addSublayer:layer]; - [layer setFilters:SKColorEffectFilters()]; - } else { - overlay = [[SKAnimatedBorderlessWindow alloc] initWithContentRect:[self convertRectToScreen:[self bounds]]]; - [[overlay contentView] setWantsLayer:YES]; - [[[overlay contentView] layer] addSublayer:layer]; - [[overlay contentView] setContentFilters:SKColorEffectFilters()]; - if (wantsAdded) - [[self window] addChildWindow:overlay ordered:NSWindowAbove]; - } - return overlay; -} - -- (void)removeLayer:(CALayer *)layer overlay:(NSWindow *)overlay { - if (overlay) { - [[self window] removeChildWindow:overlay]; - [overlay orderOut:nil]; - } else { - [layer removeFromSuperlayer]; - } -} - - (void)doMoveActiveAnnotationForKey:(unichar)eventChar byAmount:(CGFloat)delta { NSRect bounds = [activeAnnotation bounds]; NSRect newBounds = bounds; @@ -4188,8 +4161,6 @@ BOOL wantsBreak = isOption; NSBezierPath *bezierPath = nil; CAShapeLayer *layer = nil; - NSWindow *overlay = nil; - NSRect boxBounds = NSIntersectionRect([page boundsForBox:[self displayBox]], [self convertRect:[self visibleContentRect] toPage:page]); CGAffineTransform t = CGAffineTransformRotate(CGAffineTransformMakeScale([self scaleFactor], [self scaleFactor]), -M_PI_2 * [page rotation] / 90.0); layer = [CAShapeLayer layer]; @@ -4224,7 +4195,9 @@ } } - overlay = [self newOverlayLayer:layer]; + [layer setContentsScale:[[self layer] contentsScale]]; + [[self layer] addSublayer:layer]; + [layer setFilters:SKColorEffectFilters()]; // don't coalesce mouse event from mouse while drawing, // but not from tablets because those fire very rapidly and lead to serious delays @@ -4275,8 +4248,7 @@ } } - [self removeLayer:layer overlay:overlay]; - [overlay release]; + [layer removeFromSuperlayer]; [NSEvent setMouseCoalescingEnabled:wasMouseCoalescingEnabled]; @@ -4656,9 +4628,7 @@ NSRect selRect = {startPoint, NSZeroSize}; BOOL dragged = NO; CAShapeLayer *layer = nil; - NSWindow *overlay = nil; NSWindow *window = [self window]; - CGRect layerRect = NSRectToCGRect([self visibleContentRect]); layer = [CAShapeLayer layer]; [layer setStrokeColor:CGColorGetConstantColor(kCGColorBlack)]; @@ -4669,8 +4639,10 @@ [layer setMasksToBounds:YES]; [layer setZPosition:1.0]; - overlay = [self newOverlayLayer:layer]; - + [layer setContentsScale:[[self layer] contentsScale]]; + [[self layer] addSublayer:layer]; + [layer setFilters:SKColorEffectFilters()]; + while (YES) { theEvent = [window nextEventMatchingMask: NSLeftMouseUpMask | NSLeftMouseDraggedMask | NSFlagsChangedMask]; @@ -4702,8 +4674,7 @@ CGPathRelease(path); } - [self removeLayer:layer overlay:overlay]; - [overlay release]; + [layer removeFromSuperlayer]; [self setCursorForMouse:theEvent]; @@ -5021,7 +4992,11 @@ CGColorRelease(borderColor); } - loupeWindow = [self newOverlayLayer:loupeLayer]; + loupeWindow = [[SKAnimatedBorderlessWindow alloc] initWithContentRect:[self convertRectToScreen:[self bounds]]]; + [[loupeWindow contentView] setWantsLayer:YES]; + [[[loupeWindow contentView] layer] addSublayer:loupeLayer]; + [loupeLayer setContentsScale:[[[loupeWindow contentView] layer] contentsScale]]; + [[loupeWindow contentView] setContentFilters:SKColorEffectFilters()]; [loupeWindow setHasShadow:YES]; [self updateLoupeBackgroundColor]; if ([[NSUserDefaults standardUserDefaults] boolForKey:SKInvertColorsInDarkModeKey]) 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