Revision: 13279
http://sourceforge.net/p/skim-app/code/13279
Author: hofman
Date: 2023-02-03 00:13:16 +0000 (Fri, 03 Feb 2023)
Log Message:
-----------
Implement corrected goToPage method in separate goToCurrentPage method,
scrolling to current page on low scale. goToScale is sometimes, wrongly, called
when scrolling using the up-arrow key.
Modified Paths:
--------------
trunk/PDFView_SKExtensions.h
trunk/PDFView_SKExtensions.m
trunk/SKBasePDFView.m
trunk/SKMainDocument.m
trunk/SKMainWindowController.m
trunk/SKMainWindowController_Actions.m
trunk/SKMainWindowController_FullScreen.m
trunk/SKMainWindowController_UI.m
trunk/SKPDFView.m
trunk/SKSecondaryPDFView.m
trunk/SKSnapshotPDFView.m
trunk/SKSnapshotWindowController.m
Modified: trunk/PDFView_SKExtensions.h
===================================================================
--- trunk/PDFView_SKExtensions.h 2023-02-02 23:53:41 UTC (rev 13278)
+++ trunk/PDFView_SKExtensions.h 2023-02-03 00:13:16 UTC (rev 13279)
@@ -64,6 +64,8 @@
- (NSUInteger)currentPageIndexAndPoint:(NSPoint *)point rotated:(BOOL
*)rotated;
- (void)goToPageAtIndex:(NSUInteger)pageIndex point:(NSPoint)point;
+- (void)goToCurrentPage:(PDFPage *)page;
+
@property (nonatomic, readonly) BOOL drawsActiveSelections;
+ (NSColor *)defaultBackgroundColor;
Modified: trunk/PDFView_SKExtensions.m
===================================================================
--- trunk/PDFView_SKExtensions.m 2023-02-02 23:53:41 UTC (rev 13278)
+++ trunk/PDFView_SKExtensions.m 2023-02-03 00:13:16 UTC (rev 13279)
@@ -225,6 +225,10 @@
[destination release];
}
+- (void)goToCurrentPage:(PDFPage *)page {
+ [self goToPage:page];
+}
+
- (NSRange)displayedPageIndexRange {
NSUInteger pageCount = [[self document] pageCount];
PDFDisplayMode displayMode = [self displayMode];
Modified: trunk/SKBasePDFView.m
===================================================================
--- trunk/SKBasePDFView.m 2023-02-02 23:53:41 UTC (rev 13278)
+++ trunk/SKBasePDFView.m 2023-02-03 00:13:16 UTC (rev 13279)
@@ -385,7 +385,7 @@
}
}
-- (void)goToPage:(PDFPage *)page {
+- (void)goToCurrentPage:(PDFPage *)page {
if (hasHorizontalLayout(self)) {
[self horizontallyGoToPage:page];
} else {
Modified: trunk/SKMainDocument.m
===================================================================
--- trunk/SKMainDocument.m 2023-02-02 23:53:41 UTC (rev 13278)
+++ trunk/SKMainDocument.m 2023-02-03 00:13:16 UTC (rev 13279)
@@ -1730,7 +1730,7 @@
}
- (void)setCurrentPage:(PDFPage *)page {
- [[self pdfView] goToPage:page];
+ [[self pdfView] goToCurrentPage:page];
}
- (NSData *)currentQDPoint {
@@ -2020,7 +2020,7 @@
NSPoint point = [(NSData *)pointData pointValueAsQDPoint];
[[self pdfView] goToDestination:[[[PDFDestination alloc]
initWithPage:(PDFPage *)location atPoint:point] autorelease]];
} else {
- [[self pdfView] goToPage:(PDFPage *)location];
+ [[self pdfView] goToCurrentPage:(PDFPage *)location];
}
} else if ([location isKindOfClass:[PDFAnnotation class]]) {
[[self pdfView] scrollAnnotationToVisible:(PDFAnnotation
*)location];
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2023-02-02 23:53:41 UTC (rev 13278)
+++ trunk/SKMainWindowController.m 2023-02-03 00:13:16 UTC (rev 13279)
@@ -512,7 +512,7 @@
if (pointString)
[pdfView goToPageAtIndex:pageIndex
point:NSPointFromString(pointString)];
else
- [pdfView goToPage:[[pdfView document] pageAtIndex:pageIndex]];
+ [pdfView goToCurrentPage:[[pdfView document]
pageAtIndex:pageIndex]];
[lastViewedPages setCount:0];
[lastViewedPages addPointer:(void *)pageIndex];
[pdfView resetHistory];
@@ -642,7 +642,7 @@
if (pointString)
[pdfView goToPageAtIndex:pageIndex
point:NSPointFromString(pointString)];
else
- [pdfView goToPage:[[pdfView document] pageAtIndex:pageIndex]];
+ [pdfView goToCurrentPage:[[pdfView document]
pageAtIndex:pageIndex]];
}
}
}
@@ -731,7 +731,7 @@
pointString = [NSString stringWithFormat:@"{%@}", pointString];
[pdfView goToPageAtIndex:page - 1
point:NSPointFromString(pointString)];
} else if ((NSInteger)[[pdfView currentPage] pageIndex] != page) {
- [pdfView goToPage:[[pdfView document] pageAtIndex:page - 1]];
+ [pdfView goToCurrentPage:[[pdfView document] pageAtIndex:page -
1]];
}
}
if ([searchString length] > 0) {
@@ -1235,7 +1235,7 @@
[savedNormalSetup setObject:[NSNumber
numberWithUnsignedInteger:pageIndex] forKey:PAGEINDEX_KEY];
} else {
if (rotated)
- [pdfView goToPage:[document pageAtIndex:pageIndex]];
+ [pdfView goToCurrentPage:[document
pageAtIndex:pageIndex]];
else
[pdfView goToPageAtIndex:pageIndex point:point];
}
@@ -1244,7 +1244,7 @@
if (secondaryPageIndex >= [document pageCount])
secondaryPageIndex = [document pageCount] - 1;
if (secondaryRotated)
- [secondaryPdfView goToPage:[document
pageAtIndex:secondaryPageIndex]];
+ [secondaryPdfView goToCurrentPage:[document
pageAtIndex:secondaryPageIndex]];
else
[secondaryPdfView goToPageAtIndex:secondaryPageIndex
point:secondaryPoint];
}
@@ -1284,7 +1284,7 @@
}
NSUInteger idx = [pageLabels indexOfObject:label];
if (idx != NSNotFound && [[pdfView currentPage] pageIndex] != idx)
- [pdfView goToPage:[[pdfView document] pageAtIndex:idx]];
+ [pdfView goToCurrentPage:[[pdfView document] pageAtIndex:idx]];
}
- (BOOL)validatePageLabel:(id *)value error:(NSError **)error {
@@ -2017,7 +2017,7 @@
rect = NSUnionRect(rect, [sel boundsForPage:page]);
}
rect = NSIntersectionRect(NSInsetRect(rect, -FIND_RESULT_MARGIN,
-FIND_RESULT_MARGIN), [page boundsForBox:kPDFDisplayBoxCropBox]);
- [pdfView goToPage:page];
+ [pdfView goToCurrentPage:page];
[pdfView goToRect:rect onPage:page];
}
@@ -2149,7 +2149,7 @@
if (pointString)
[pdfView goToPageAtIndex:pageIndex
point:NSPointFromString(pointString)];
else
- [pdfView goToPage:[[pdfView document] pageAtIndex:pageIndex]];
+ [pdfView goToCurrentPage:[[pdfView document]
pageAtIndex:pageIndex]];
[lastViewedPages setCount:0];
[lastViewedPages addPointer:(void *)pageIndex];
[pdfView resetHistory];
@@ -2633,7 +2633,7 @@
if ([indexes count] == 1 && mwcFlags.updatingThumbnailSelection == 0) {
NSUInteger pageIndex = [indexes firstIndex];
if ([[pdfView currentPage] pageIndex] != pageIndex)
- [pdfView goToPage:[[pdfView document] pageAtIndex:pageIndex]];
+ [pdfView goToCurrentPage:[[pdfView document]
pageAtIndex:pageIndex]];
} else if ([indexes count] == 0) {
[overviewView setSelectionIndexes:[NSIndexSet
indexSetWithIndex:[[pdfView currentPage] pageIndex]]];
}
Modified: trunk/SKMainWindowController_Actions.m
===================================================================
--- trunk/SKMainWindowController_Actions.m 2023-02-02 23:53:41 UTC (rev
13278)
+++ trunk/SKMainWindowController_Actions.m 2023-02-03 00:13:16 UTC (rev
13279)
@@ -1157,7 +1157,7 @@
[pdfSplitView setPosition:position ofDividerAtIndex:0 animate:YES];
if (page) {
- [secondaryPdfView goToPage:page];
+ [secondaryPdfView goToCurrentPage:page];
point = [secondaryPdfView convertPoint:[secondaryPdfView
convertPoint:[pdfView convertPoint:point toPage:page] fromPage:page]
toView:[secondaryPdfView documentView]];
if ([[[secondaryPdfView scrollView] contentView] isFlipped] ==
fixedAtBottom)
point.y -= ([[secondaryPdfView documentView] isFlipped] ==
fixedAtBottom ? 1.0 : -1.0) * NSHeight([[secondaryPdfView documentView]
visibleRect]);
Modified: trunk/SKMainWindowController_FullScreen.m
===================================================================
--- trunk/SKMainWindowController_FullScreen.m 2023-02-02 23:53:41 UTC (rev
13278)
+++ trunk/SKMainWindowController_FullScreen.m 2023-02-03 00:13:16 UTC (rev
13279)
@@ -438,7 +438,7 @@
[self fadeInFullScreenView];
if ([[[self pdfView] currentPage] isEqual:page] == NO)
- [[self pdfView] goToPage:page];
+ [[self pdfView] goToCurrentPage:page];
mwcFlags.isSwitchingFullScreen = 0;
@@ -481,7 +481,7 @@
[pdfView requiresDisplay];
if ([[[self pdfView] currentPage] isEqual:page] == NO)
- [[self pdfView] goToPage:page];
+ [[self pdfView] goToCurrentPage:page];
mwcFlags.isSwitchingFullScreen = 0;
Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m 2023-02-02 23:53:41 UTC (rev 13278)
+++ trunk/SKMainWindowController_UI.m 2023-02-03 00:13:16 UTC (rev 13279)
@@ -487,7 +487,7 @@
if (mwcFlags.updatingThumbnailSelection == 0) {
NSInteger row = [leftSideController.thumbnailTableView
selectedRow];
if (row != -1)
- [pdfView goToPage:[[pdfView document] pageAtIndex:row]];
+ [pdfView goToCurrentPage:[[pdfView document] pageAtIndex:row]];
if ([self interactionMode] == SKPresentationMode &&
[[NSUserDefaults standardUserDefaults]
boolForKey:SKAutoHidePresentationContentsKey])
[self hideSideWindow];
@@ -1921,7 +1921,7 @@
NSInteger offset = [self presentationNotesOffset];
pageIndex = (NSUInteger)MAX(0, MIN((NSInteger)[pdfDoc pageCount],
(NSInteger)pageIndex + offset));
if ([self presentationNotesDocument] == [self document])
- [[presentationPreview pdfView] goToPage:[pdfDoc
pageAtIndex:pageIndex]];
+ [[presentationPreview pdfView] goToCurrentPage:[pdfDoc
pageAtIndex:pageIndex]];
else
[[self presentationNotesDocument] setCurrentPage:[pdfDoc
pageAtIndex:pageIndex]];
}
Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m 2023-02-02 23:53:41 UTC (rev 13278)
+++ trunk/SKPDFView.m 2023-02-03 00:13:16 UTC (rev 13279)
@@ -782,7 +782,7 @@
PDFPage *page = [self currentPage];
[super setDisplayMode:mode];
if (page && [page isEqual:[self currentPage]] == NO)
- [self goToPage:page];
+ [self goToCurrentPage:page];
[self resetPDFToolTipRects];
[editor layoutWithEvent:nil];
}
@@ -824,7 +824,7 @@
[super setDisplayMode:mode];
[self _setDisplaysHorizontally:horizontal];
if (page && [page isEqual:[self currentPage]] == NO)
- [self goToPage:page];
+ [self goToCurrentPage:page];
[self resetPDFToolTipRects];
[editor layoutWithEvent:nil];
}
@@ -852,7 +852,7 @@
PDFPage *page = [self currentPage];
[self _setDisplaysHorizontally:flag];
if (page && [page isEqual:[self currentPage]] == NO)
- [self goToPage:page];
+ [self goToCurrentPage:page];
[self resetPDFToolTipRects];
[editor layoutWithEvent:nil];
}
@@ -883,7 +883,7 @@
// on 10.15 this does not relayout the view...
[self layoutDocumentView];
if (page && [page isEqual:[self currentPage]] == NO)
- [self goToPage:page];
+ [self goToCurrentPage:page];
[self resetPDFToolTipRects];
[editor layoutWithEvent:nil];
[[NSNotificationCenter defaultCenter]
postNotificationName:SKPDFViewDisplaysRTLChangedNotification object:self];
@@ -904,7 +904,7 @@
PDFPage *page = [self currentPage];
[super setDisplayBox:box];
if (page && [page isEqual:[self currentPage]] == NO)
- [self goToPage:page];
+ [self goToCurrentPage:page];
[self resetPDFToolTipRects];
[editor layoutWithEvent:nil];
}
@@ -923,7 +923,7 @@
PDFPage *page = [self currentPage];
[super setDisplaysAsBook:asBook];
if (page && [page isEqual:[self currentPage]] == NO)
- [self goToPage:page];
+ [self goToCurrentPage:page];
[self resetPDFToolTipRects];
[editor layoutWithEvent:nil];
[[NSNotificationCenter defaultCenter]
postNotificationName:SKPDFViewDisplaysAsBookChangedNotification object:self];
@@ -1743,7 +1743,7 @@
- (void)scrollToPage:(PDFPage *)page {
if ([self isPageAtIndexDisplayed:[page pageIndex]] == NO) {
- [self goToPage:page];
+ [self goToCurrentPage:page];
return;
}
PDFDisplayMode mode = [self extendedDisplayMode];
@@ -3137,7 +3137,7 @@
BOOL shouldHideReadingBar = NO;
if (wasPageDisplayed == NO)
- [self goToPage:page];
+ [self goToCurrentPage:page];
if (interactionMode != SKPresentationMode) {
if (showBar) {
Modified: trunk/SKSecondaryPDFView.m
===================================================================
--- trunk/SKSecondaryPDFView.m 2023-02-02 23:53:41 UTC (rev 13278)
+++ trunk/SKSecondaryPDFView.m 2023-02-03 00:13:16 UTC (rev 13279)
@@ -357,7 +357,7 @@
}
- (void)pagePopUpAction:(id)sender {
- [self goToPage:[[self document] pageAtIndex:[sender indexOfSelectedItem]]];
+ [self goToCurrentPage:[[self document] pageAtIndex:[sender
indexOfSelectedItem]]];
if (transientControlView)
[self hideControlView];
}
Modified: trunk/SKSnapshotPDFView.m
===================================================================
--- trunk/SKSnapshotPDFView.m 2023-02-02 23:53:41 UTC (rev 13278)
+++ trunk/SKSnapshotPDFView.m 2023-02-03 00:13:16 UTC (rev 13279)
@@ -474,7 +474,7 @@
}
- (void)goToPage:(PDFPage *)aPage {
- [super goToPage:aPage];
+ [super goToCurrentPage:aPage];
[self resetAutoFitRectIfNeeded];
}
Modified: trunk/SKSnapshotWindowController.m
===================================================================
--- trunk/SKSnapshotWindowController.m 2023-02-02 23:53:41 UTC (rev 13278)
+++ trunk/SKSnapshotWindowController.m 2023-02-03 00:13:16 UTC (rev 13279)
@@ -323,7 +323,7 @@
}
[[self window] setFrame:NSIntegralRect(frame) display:NO animate:NO];
- [pdfView goToPage:page];
+ [pdfView goToCurrentPage:page];
if (autoFits) {
[pdfView setAutoFits:autoFits];
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