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