Revision: 13460
http://sourceforge.net/p/skim-app/code/13460
Author: hofman
Date: 2023-06-09 18:25:51 +0000 (Fri, 09 Jun 2023)
Log Message:
-----------
Handle edge case for 2-up-continuous in next/previous page overrides
Modified Paths:
--------------
trunk/SKBasePDFView.m
Modified: trunk/SKBasePDFView.m
===================================================================
--- trunk/SKBasePDFView.m 2023-06-08 22:10:23 UTC (rev 13459)
+++ trunk/SKBasePDFView.m 2023-06-09 18:25:51 UTC (rev 13460)
@@ -295,7 +295,7 @@
[clipView scrollToPoint:bounds.origin];
}
-- (void)verticallyGoToPage:(PDFPage *)page {
+- (void)verticallyScrollToPage:(PDFPage *)page {
NSScrollView *scrollView = [self scrollView];
CGFloat inset = [scrollView contentInsets].top;
NSRect pageRect = [self convertRect:[page boundsForBox:[self displayBox]]
fromPage:page];
@@ -331,13 +331,13 @@
PDFPage *page = nil;
if (hasVerticalLayout(self)) {
NSUInteger i = [[self currentPage] pageIndex];
- NSUInteger di = [self displayMode] == kPDFDisplayTwoUpContinuous ?
2 : 1;
- if (i > di)
+ NSUInteger di = ([self displayMode] == kPDFDisplayTwoUpContinuous
&& (i > 1 || [self displaysAsBook] == NO)) ? 2 : 1;
+ if (i >= di)
page = [[self document] pageAtIndex:i - di];
}
[super goToPreviousPage:sender];
if (page)
- [self verticallyGoToPage:page];
+ [self verticallyScrollToPage:page];
}
}
@@ -349,13 +349,14 @@
} else {
PDFPage *page = nil;
if (hasVerticalLayout(self)) {
- NSUInteger i = [[self currentPage] pageIndex] + ([self
displayMode] == kPDFDisplayTwoUpContinuous ? 2 : 1);
+ NSUInteger i = [[self currentPage] pageIndex];
+ i += ([self displayMode] == kPDFDisplayTwoUpContinuous && (i > 0
|| [self displaysAsBook] == NO)) ? 2 : 1;
if (i < [[self document] pageCount])
page = [[self document] pageAtIndex:i];
}
[super goToNextPage:sender];
if (page)
- [self verticallyGoToPage:page];
+ [self verticallyScrollToPage:page];
}
}
@@ -385,7 +386,7 @@
} else {
[self goToPage:page];
if (hasVerticalLayout(self))
- [self verticallyGoToPage:page];
+ [self verticallyScrollToPage:page];
}
}
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