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

Reply via email to