Revision: 14300
http://sourceforge.net/p/skim-app/code/14300
Author: hofman
Date: 2024-06-04 21:27:01 +0000 (Tue, 04 Jun 2024)
Log Message:
-----------
Update thumbnails during presentation when showing side window if needed. Don't
update thumbnails more than once for presentation.
Modified Paths:
--------------
trunk/SKMainWindowController.h
trunk/SKMainWindowController.m
trunk/SKMainWindowController_FullScreen.m
Modified: trunk/SKMainWindowController.h
===================================================================
--- trunk/SKMainWindowController.h 2024-06-04 16:35:46 UTC (rev 14299)
+++ trunk/SKMainWindowController.h 2024-06-04 21:27:01 UTC (rev 14300)
@@ -202,7 +202,8 @@
unsigned int hasCropped:1;
unsigned int fullSizeContent:1;
unsigned int needsCleanup:1;
- unsigned int presentationInvalidatesThumbnails:1;
+ unsigned int thumbnailsNeedUpdateAfterPresentaton:1;
+ unsigned int thumbnailsUpdatedDuringPresentaton:1;
} mwcFlags;
}
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2024-06-04 16:35:46 UTC (rev 14299)
+++ trunk/SKMainWindowController.m 2024-06-04 21:27:01 UTC (rev 14300)
@@ -1579,8 +1579,10 @@
[[SKImageToolTipWindow sharedToolTipWindow] orderOut:nil];
- if (isPresentation && fabs([[self window] backingScaleFactor] -
[mainWindow backingScaleFactor]) > 0.0)
+ if (isPresentation && mwcFlags.thumbnailsUpdatedDuringPresentaton == 0 &&
fabs([[self window] backingScaleFactor] - [mainWindow backingScaleFactor]) >
0.0) {
[self allThumbnailsNeedUpdate];
+ mwcFlags.thumbnailsUpdatedDuringPresentaton = 1;
+ }
if (animate) {
[NSAnimationContext runAnimationGroup:^(NSAnimationContext * context){
@@ -2821,8 +2823,8 @@
PDFDisplayBox box = [pdfView displayBox];
CGFloat scale = [[self window] backingScaleFactor];
- if ([self interactionMode] == SKPresentationMode &&
mwcFlags.presentationInvalidatesThumbnails == 0 && fabs([mainWindow
backingScaleFactor] - scale) > 0.0)
- mwcFlags.presentationInvalidatesThumbnails = 1;
+if ([self interactionMode] == SKPresentationMode &&
mwcFlags.thumbnailsNeedUpdateAfterPresentaton == 0 && fabs([mainWindow
backingScaleFactor] - scale) > 0.0)
+ mwcFlags.thumbnailsNeedUpdateAfterPresentaton = 1;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
0), ^{
NSImage *image = [page thumbnailWithSize:thumbnailCacheSize
scale:scale forBox:box hasShadow:YES highlights:highlights];
Modified: trunk/SKMainWindowController_FullScreen.m
===================================================================
--- trunk/SKMainWindowController_FullScreen.m 2024-06-04 16:35:46 UTC (rev
14299)
+++ trunk/SKMainWindowController_FullScreen.m 2024-06-04 21:27:01 UTC (rev
14300)
@@ -117,6 +117,11 @@
[leftSideController.topBar setDrawsBackground:NO];
}
+ if (mwcFlags.thumbnailsUpdatedDuringPresentaton == 0 && fabs([[self
window] backingScaleFactor] - [mainWindow backingScaleFactor]) > 0.0) {
+ [self allThumbnailsNeedUpdate];
+ mwcFlags.thumbnailsUpdatedDuringPresentaton = 1;
+ }
+
mwcFlags.savedLeftSidePaneState = [self leftSidePaneState];
[self setLeftSidePaneState:SKSidePaneStateThumbnail];
[sideWindow makeFirstResponder:leftSideController.thumbnailTableView];
@@ -535,10 +540,11 @@
[pdfView layoutDocumentView];
[pdfView requiresDisplay];
- if (mwcFlags.presentationInvalidatesThumbnails) {
- mwcFlags.presentationInvalidatesThumbnails = 0;
+ if (mwcFlags.thumbnailsNeedUpdateAfterPresentaton) {
+ mwcFlags.thumbnailsNeedUpdateAfterPresentaton = 0;
[self allThumbnailsNeedUpdate];
}
+ mwcFlags.thumbnailsUpdatedDuringPresentaton = 0;
if ([[[self pdfView] currentPage] isEqual:page] == NO)
[[self pdfView] goToCurrentPage: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