Revision: 15187
http://sourceforge.net/p/skim-app/code/15187
Author: hofman
Date: 2025-05-11 21:07:43 +0000 (Sun, 11 May 2025)
Log Message:
-----------
Start the transition preview when page was drawn, don't start preview when we
are busy previewing.
Modified Paths:
--------------
trunk/SKPresentationOptionsSheetController.h
trunk/SKPresentationOptionsSheetController.m
trunk/SKPresentationView.h
trunk/SKPresentationView.m
Modified: trunk/SKPresentationOptionsSheetController.h
===================================================================
--- trunk/SKPresentationOptionsSheetController.h 2025-05-11 15:41:28 UTC
(rev 15186)
+++ trunk/SKPresentationOptionsSheetController.h 2025-05-11 21:07:43 UTC
(rev 15187)
@@ -61,6 +61,7 @@
NSMutableSet<SKLabeledTransitionInfo *> *changedTransitions;
NSPanel *previewWindow;
SKPDFPageView *previewView;
+ BOOL previewing;
}
@property (nonatomic, nullable, strong) IBOutlet NSPopUpButton
*notesDocumentPopUpButton;
Modified: trunk/SKPresentationOptionsSheetController.m
===================================================================
--- trunk/SKPresentationOptionsSheetController.m 2025-05-11 15:41:28 UTC
(rev 15186)
+++ trunk/SKPresentationOptionsSheetController.m 2025-05-11 21:07:43 UTC
(rev 15187)
@@ -297,6 +297,10 @@
}
- (void)preview:(id)sender {
+ if (previewing)
+ return;
+ previewing = YES;
+
SKLabeledTransitionInfo *info = transition;
NSInteger idx = -1;
if (separate) {
@@ -366,26 +370,24 @@
[previewWindow layoutIfNeeded];
[previewWindow center];
- [previewView setPage:[[controller pdfDocument] pageAtIndex:idx]];
[[previewView transitionController] setTransition:info];
- [previewWindow makeKeyAndOrderFront:nil];
+ PDFPage *page = [[controller pdfDocument] pageAtIndex:idx];
+ void (^displayPreview)(void) = ^{
+ [previewWindow makeKeyAndOrderFront:nil];
+ DISPATCH_MAIN_AFTER_SEC(1.0, ^{
+ [previewView animateToNextPage:^{
+ DISPATCH_MAIN_AFTER_SEC(1.0 , ^{
+ if ([previewWindow isKeyWindow] && [[self window]
isVisible])
+ [[self window] makeKeyWindow];
+ [previewWindow orderOut:nil];
+ previewing = NO;
+ });
+ }];
+ });
+ };
- DISPATCH_MAIN_AFTER_SEC(1.0, ^{
-
- [previewView animateToNextPage:^{
-
- DISPATCH_MAIN_AFTER_SEC(1.0 , ^{
-
- if ([previewWindow isKeyWindow])
- [[self window] makeKeyWindow];
- [previewWindow orderOut:nil];
-
- });
-
- }];
-
- });
+ [previewView setPage:page completionHandler:displayPreview];
}
- (NSArray *)availableTransitions {
Modified: trunk/SKPresentationView.h
===================================================================
--- trunk/SKPresentationView.h 2025-05-11 15:41:28 UTC (rev 15186)
+++ trunk/SKPresentationView.h 2025-05-11 21:07:43 UTC (rev 15187)
@@ -58,6 +58,7 @@
- (void)goToNextPage:(nullable id)sender;
- (void)goToPreviousPage:(nullable id)sender;
+- (void)setPage:(PDFPage *)page completionHandler:(void (^
_Nullable)(void))completionHandler;
- (void)animateToNextPage:(void (^)(void))completionHandler;
@end
Modified: trunk/SKPresentationView.m
===================================================================
--- trunk/SKPresentationView.m 2025-05-11 15:41:28 UTC (rev 15186)
+++ trunk/SKPresentationView.m 2025-05-11 21:07:43 UTC (rev 15187)
@@ -141,7 +141,7 @@
[super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
}
-#pragma mark Accessors
+#pragma mark Transitions
- (void)setPage:(PDFPage *)newPage completionHandler:(void
(^)(void))completionHandler {
page = newPage;
@@ -149,15 +149,6 @@
[[NSNotificationCenter defaultCenter]
postNotificationName:SKPresentationViewPageChangedNotification object:self];
}
-- (void)setPage:(PDFPage *)newPage {
- if (newPage != page)
- [self setPage:newPage completionHandler:nil];
-}
-
-- (BOOL)autoScales { return YES; }
-
-#pragma mark Action
-
- (NSRect)pageRect:(PDFPage *)aPage {
NSRect bounds = [self bounds];
NSRect pageRect = [aPage boundsForBox:kPDFDisplayBoxCropBox];
@@ -202,6 +193,17 @@
}
}
+#pragma mark Accessors
+
+- (void)setPage:(PDFPage *)newPage {
+ if (newPage != page)
+ [self setPage:newPage completionHandler:nil];
+}
+
+- (BOOL)autoScales { return YES; }
+
+#pragma mark Action
+
- (void)goToNextPage:(id)sender {
PDFDocument *pdfDoc = [page document];
NSUInteger idx = [page pageIndex];
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