Revision: 15171
http://sourceforge.net/p/skim-app/code/15171
Author: hofman
Date: 2025-05-09 08:55:53 +0000 (Fri, 09 May 2025)
Log Message:
-----------
Let presentation view decide whether to redisplay. Scale to fill when resizing.
Modified Paths:
--------------
trunk/SKMainWindowController.m
trunk/SKPresentationView.h
trunk/SKPresentationView.m
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2025-05-08 22:54:29 UTC (rev 15170)
+++ trunk/SKMainWindowController.m 2025-05-09 08:55:53 UTC (rev 15171)
@@ -2192,8 +2192,7 @@
[presentationNotes addObject:annotation];
if (page) {
[self updateThumbnailAtPageIndex:[page pageIndex]];
- if ([presentationView page] == page)
- [presentationView updatedAnnotation];
+ [presentationView updatedAnnotationOnPage:page];
}
} else {
[[undoManager prepareWithInvocationTarget:[notification object]]
removeAnnotation:annotation];
@@ -2216,8 +2215,8 @@
[self snapshotNeedsUpdate:wc lowPriority:NO];
}
[secondaryPdfView addedAnnotation:annotation onPage:page];
- if ([self interactionMode] == SKPresentationMode &&
[presentationView page] == page)
- [presentationView updatedAnnotation];
+ if ([self interactionMode] == SKPresentationMode)
+ [presentationView updatedAnnotationOnPage:page];
}
}
}
@@ -2234,8 +2233,7 @@
[presentationNotes removeObject:annotation];
if (page) {
[self updateThumbnailAtPageIndex:[page pageIndex]];
- if ([presentationView page] == page)
- [presentationView updatedAnnotation];
+ [presentationView updatedAnnotationOnPage:page];
}
} else {
[[undoManager prepareWithInvocationTarget:[notification object]]
addAnnotation:annotation toPage:page];
@@ -2261,8 +2259,8 @@
[self snapshotNeedsUpdate:wc lowPriority:NO];
}
[secondaryPdfView removedAnnotation:annotation onPage:page];
- if ([self interactionMode] == SKPresentationMode &&
[presentationView page] == page)
- [presentationView updatedAnnotation];
+ if ([self interactionMode] == SKPresentationMode)
+ [presentationView updatedAnnotationOnPage:page];
}
}
}
@@ -2286,8 +2284,10 @@
}
[secondaryPdfView removedAnnotation:annotation onPage:oldPage];
[secondaryPdfView addedAnnotation:annotation onPage:newPage];
- if ([self interactionMode] == SKPresentationMode && ([presentationView
page] == oldPage || [presentationView page] == newPage))
- [presentationView updatedAnnotation];
+ if ([self interactionMode] == SKPresentationMode) {
+ [presentationView updatedAnnotationOnPage:oldPage];
+ [presentationView updatedAnnotationOnPage:newPage];
+ }
}
[rightSideController.noteArrayController rearrangeObjects];
@@ -2728,8 +2728,8 @@
[pdfView updatedAnnotation:note forKey:keyPath
fromValue:oldValue];
[secondaryPdfView updatedAnnotation:note];
- if ([self interactionMode] == SKPresentationMode &&
[presentationView page] == page)
- [presentationView updatedAnnotation];
+ if ([self interactionMode] == SKPresentationMode)
+ [presentationView updatedAnnotationOnPage:page];
if ([keyPath isEqualToString:SKNPDFAnnotationBoundsKey] &&
note == [pdfView currentAnnotation] && [[NSUserDefaults standardUserDefaults]
boolForKey:SKDisplayNoteBoundsKey])
[self updateRightStatus];
Modified: trunk/SKPresentationView.h
===================================================================
--- trunk/SKPresentationView.h 2025-05-08 22:54:29 UTC (rev 15170)
+++ trunk/SKPresentationView.h 2025-05-09 08:55:53 UTC (rev 15171)
@@ -112,7 +112,7 @@
- (void)didOpen;
- (void)willClose;
-- (void)updatedAnnotation;
+- (void)updatedAnnotationOnPage:(PDFPage *)aPage;
@end
Modified: trunk/SKPresentationView.m
===================================================================
--- trunk/SKPresentationView.m 2025-05-08 22:54:29 UTC (rev 15170)
+++ trunk/SKPresentationView.m 2025-05-09 08:55:53 UTC (rev 15171)
@@ -260,7 +260,7 @@
pvFlags.enableDrawing = NO == [[NSUserDefaults standardUserDefaults]
boolForKey:SKDisableDrawingInPresentationKey];
[pageView
setLayerContentsRedrawPolicy:NSViewLayerContentsRedrawOnSetNeedsDisplay];
- [pageView
setLayerContentsPlacement:NSViewLayerContentsPlacementScaleProportionallyToFit];
+ [pageView
setLayerContentsPlacement:NSViewLayerContentsPlacementScaleProportionallyToFill];
[self addTrackingArea:[[NSTrackingArea alloc] initWithRect:NSZeroRect
options:NSTrackingMouseMoved | NSTrackingMouseEnteredAndExited |
NSTrackingActiveInKeyWindow | NSTrackingInVisibleRect owner:self userInfo:nil]];
}
@@ -272,8 +272,9 @@
[pageView setNeedsDisplay:YES];
}
-- (void)updatedAnnotation; {
- [pageView setNeedsDisplay:YES];
+- (void)updatedAnnotationOnPage:(PDFPage *)aPage {
+ if (page == aPage)
+ [pageView setNeedsDisplay:YES];
}
#pragma mark Accessors
@@ -289,7 +290,7 @@
- (void)setAutoScales:(BOOL)flag {
if (flag != pvFlags.autoScales) {
pvFlags.autoScales = flag;
- [pageView setLayerContentsPlacement:flag ?
NSViewLayerContentsPlacementScaleProportionallyToFit :
NSViewLayerContentsPlacementCenter];
+ [pageView setLayerContentsPlacement:flag ?
NSViewLayerContentsPlacementScaleProportionallyToFill :
NSViewLayerContentsPlacementCenter];
[pageView setNeedsDisplay:YES];
[[NSNotificationCenter defaultCenter]
postNotificationName:SKPresentationViewAutoScalesChangedNotification
object:self];
}
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