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

Reply via email to