Revision: 13785
          http://sourceforge.net/p/skim-app/code/13785
Author:   hofman
Date:     2023-11-20 15:18:36 +0000 (Mon, 20 Nov 2023)
Log Message:
-----------
constant point for unspecified value to pass when ignoring scrolling to a 
specific point in goToPageAtIndex:point:

Modified Paths:
--------------
    trunk/PDFView_SKExtensions.h
    trunk/PDFView_SKExtensions.m
    trunk/SKMainWindowController.m

Modified: trunk/PDFView_SKExtensions.h
===================================================================
--- trunk/PDFView_SKExtensions.h        2023-11-20 14:49:41 UTC (rev 13784)
+++ trunk/PDFView_SKExtensions.h        2023-11-20 15:18:36 UTC (rev 13785)
@@ -38,6 +38,7 @@
 
 #import <Cocoa/Cocoa.h>
 
+extern const NSPoint SKUnspecifiedPoint;
 
 @interface PDFView (SKExtensions) <NSDraggingSource>
 

Modified: trunk/PDFView_SKExtensions.m
===================================================================
--- trunk/PDFView_SKExtensions.m        2023-11-20 14:49:41 UTC (rev 13784)
+++ trunk/PDFView_SKExtensions.m        2023-11-20 15:18:36 UTC (rev 13785)
@@ -52,6 +52,7 @@
 #import "NSImage_SKExtensions.h"
 #import "NSResponder_SKExtensions.h"
 
+const NSPoint SKUnspecifiedPoint = (NSPoint){FLT_MAX, FLT_MAX};
 
 @interface PDFView (SKPrivatePageViewDeclarations)
 - (id)pageViewForPageAtIndex:(NSUInteger)index;
@@ -241,7 +242,9 @@
 
 - (void)goToPageAtIndex:(NSUInteger)pageIndex point:(NSPoint)point {
     PDFPage *page = [[self document] pageAtIndex:pageIndex];
-    if (@available(macOS 12.0, *)) {
+    if (NSEqualPoints(point, SKUnspecifiedPoint)) {
+        [self goToCurrentPage:page];
+    } else if (@available(macOS 12.0, *)) {
         NSScrollView *scrollView = [self scrollView];
         NSClipView *clipView = [scrollView contentView];
         if (NSLocationInRange(pageIndex, [self displayedPageIndexRange]) == NO)

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2023-11-20 14:49:41 UTC (rev 13784)
+++ trunk/SKMainWindowController.m      2023-11-20 15:18:36 UTC (rev 13785)
@@ -474,10 +474,7 @@
         if ([[pdfView document] isLocked]) {
             [savedNormalSetup setObject:[NSNumber 
numberWithUnsignedInteger:pageIndex] forKey:PAGEINDEX_KEY];
         } else if ([[pdfView currentPage] pageIndex] != pageIndex || 
pointString) {
-            if (pointString)
-                [pdfView goToPageAtIndex:pageIndex 
point:NSPointFromString(pointString)];
-            else
-                [pdfView goToCurrentPage:[[pdfView document] 
pageAtIndex:pageIndex]];
+            [pdfView goToPageAtIndex:pageIndex point:pointString ? 
NSPointFromString(pointString) : SKUnspecifiedPoint];
             [lastViewedPages setCount:0];
             [lastViewedPages addPointer:(void *)pageIndex];
             [pdfView resetHistory];
@@ -603,10 +600,7 @@
         NSUInteger pageIndex = [pageIndexNumber unsignedIntegerValue];
         if (pageIndexNumber && pageIndex != NSNotFound && pageIndex != 
[[pdfView currentPage] pageIndex]) {
             NSString *pointString = [setup objectForKey:SCROLLPOINT_KEY];
-            if (pointString)
-                [pdfView goToPageAtIndex:pageIndex 
point:NSPointFromString(pointString)];
-            else
-                [pdfView goToCurrentPage:[[pdfView document] 
pageAtIndex:pageIndex]];
+            [pdfView goToPageAtIndex:pageIndex point:pointString ? 
NSPointFromString(pointString) : SKUnspecifiedPoint];
         }
     }
 }
@@ -1182,24 +1176,22 @@
     
     if ([pdfDocument pageCount] && (pageIndex != NSNotFound || 
secondaryPageIndex != NSNotFound)) {
         if (pageIndex != NSNotFound) {
-            if (pageIndex >= [pdfDocument pageCount])
+            if (pageIndex >= [pdfDocument pageCount]) {
                 pageIndex = [pdfDocument pageCount] - 1;
+                point = SKUnspecifiedPoint;
+            }
             if ([pdfDocument isLocked] && ([self interactionMode] == 
SKNormalMode || [self interactionMode] == SKFullScreenMode)) {
                 [savedNormalSetup setObject:[NSNumber 
numberWithUnsignedInteger:pageIndex] forKey:PAGEINDEX_KEY];
             } else {
-                if (rotated)
-                    [pdfView goToCurrentPage:[pdfDocument 
pageAtIndex:pageIndex]];
-                else
-                    [pdfView goToPageAtIndex:pageIndex point:point];
+                [pdfView goToPageAtIndex:pageIndex point:rotated ? point : 
SKUnspecifiedPoint];
             }
         }
         if (secondaryPageIndex != NSNotFound) {
-            if (secondaryPageIndex >= [pdfDocument pageCount])
+            if (secondaryPageIndex >= [pdfDocument pageCount]) {
                 secondaryPageIndex = [pdfDocument pageCount] - 1;
-            if (secondaryRotated)
-                [secondaryPdfView goToCurrentPage:[pdfDocument 
pageAtIndex:secondaryPageIndex]];
-            else
-                [secondaryPdfView goToPageAtIndex:secondaryPageIndex 
point:secondaryPoint];
+                secondaryPoint = SKUnspecifiedPoint;
+            }
+            [secondaryPdfView goToPageAtIndex:secondaryPageIndex 
point:secondaryRotated ? secondaryPoint : SKUnspecifiedPoint];
         }
         [pdfView resetHistory];
     }
@@ -2136,10 +2128,7 @@
     NSUInteger pageIndex = pageIndexNumber ? [pageIndexNumber 
unsignedIntegerValue] : NSNotFound;
     if (pageIndex != NSNotFound) {
         NSString *pointString = [savedNormalSetup 
objectForKey:SCROLLPOINT_KEY];
-        if (pointString)
-            [pdfView goToPageAtIndex:pageIndex 
point:NSPointFromString(pointString)];
-        else
-            [pdfView goToCurrentPage:[[pdfView document] 
pageAtIndex:pageIndex]];
+        [pdfView goToPageAtIndex:pageIndex point:pointString ? 
NSPointFromString(pointString) : SKUnspecifiedPoint];
         [lastViewedPages setCount:0];
         [lastViewedPages addPointer:(void *)pageIndex];
         [pdfView resetHistory];

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