Revision: 15453
          http://sourceforge.net/p/skim-app/code/15453
Author:   hofman
Date:     2025-06-13 09:14:36 +0000 (Fri, 13 Jun 2025)
Log Message:
-----------
invalidate marked page only on revert. Check for pageCount early.

Modified Paths:
--------------
    trunk/SKMainWindowController.m

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2025-06-13 08:42:56 UTC (rev 15452)
+++ trunk/SKMainWindowController.m      2025-06-13 09:14:36 UTC (rev 15453)
@@ -1086,16 +1086,23 @@
     if (oldPdfDoc) {
         // this is a revert
         // need to clean up data and actions, and remember settings to restore
-        dest = [pdfView currentDestination:YES];
-        if (dest.pageIndex >= pageCount && dest.pageIndex != NSNotFound)
-            dest = (SKDestination){pageCount - 1, SKUnspecifiedPoint};
-        if (secondaryPdfView) {
-            secondaryDest = [secondaryPdfView currentDestination:YES];
-            if (secondaryDest.pageIndex >= pageCount && 
secondaryDest.pageIndex != NSNotFound)
-                secondaryDest = (SKDestination){pageCount - 1, 
SKUnspecifiedPoint};
+        if (pageCount) {
+            dest = [pdfView currentDestination:YES];
+            if (dest.pageIndex >= pageCount && dest.pageIndex != NSNotFound)
+                dest = (SKDestination){pageCount - 1, SKUnspecifiedPoint};
+            if (secondaryPdfView) {
+                secondaryDest = [secondaryPdfView currentDestination:YES];
+                if (secondaryDest.pageIndex >= pageCount && 
secondaryDest.pageIndex != NSNotFound)
+                    secondaryDest = (SKDestination){pageCount - 1, 
SKUnspecifiedPoint};
+            }
         }
         openState = [self expansionStateForOutline:[[pdfView document] 
outlineRoot]];
         
+        if (markedPage.pageIndex >= pageCount)
+            markedPage.pageIndex = beforeMarkedPage.pageIndex = NSNotFound;
+        else if (beforeMarkedPage.pageIndex >= pageCount)
+            beforeMarkedPage.pageIndex = NSNotFound;
+        
         [oldPdfDoc cancelFindString];
         
         // make sure these will not be activated, or they can lead to a crash
@@ -1199,17 +1206,12 @@
     else if ([widgetProperties count])
         placeholderWidgetProperties = [widgetProperties copy];
     
-    if (markedPage.pageIndex >= pageCount)
-        markedPage.pageIndex = beforeMarkedPage.pageIndex = NSNotFound;
-    else if (beforeMarkedPage.pageIndex >= pageCount)
-        beforeMarkedPage.pageIndex = NSNotFound;
-    
     [self updatePageLabelsAndOutlineForExpansionState:openState];
     
     if (unlocked && [snapshotDicts count])
         [self showSnapshotsWithSetups:snapshotDicts];
     
-    if (unlocked && pageCount && dest.pageIndex != NSNotFound) {
+    if (unlocked && dest.pageIndex != NSNotFound) {
         [pdfView goToCurrentDestination:dest];
         if (secondaryDest.pageIndex != NSNotFound)
             [secondaryPdfView goToCurrentDestination:secondaryDest];

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to