Revision: 15368
          http://sourceforge.net/p/skim-app/code/15368
Author:   hofman
Date:     2025-06-05 09:14:44 +0000 (Thu, 05 Jun 2025)
Log Message:
-----------
Set pageindex and snapshots from non-setup bookmarks, if available, before 
opening document, so it can be applied on opening

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

Modified: trunk/SKDocumentController.m
===================================================================
--- trunk/SKDocumentController.m        2025-06-04 14:52:15 UTC (rev 15367)
+++ trunk/SKDocumentController.m        2025-06-05 09:14:44 UTC (rev 15368)
@@ -415,22 +415,17 @@
         
         NSURL *fileURL = [bookmark fileURLToOpen];
         if (fileURL && [fileURL checkResourceIsReachableAndReturnError:NULL] 
&& NO == [fileURL isTrashedFileURL]) {
-            BOOL hasSetup = [bookmark hasSetup];
             NSDictionary *setup = nil;
-            if (hasSetup)
+            if ([bookmark hasSetup])
                 setup = [bookmark properties];
             else if ([bookmark pageIndex] != NSNotFound)
                 setup = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber 
numberWithUnsignedInteger:[bookmark pageIndex]], @"pageIndex", [bookmark 
snapshots], @"snapshots", nil];
-            [self openDocumentWithContentsOfURL:fileURL display:hasSetup == NO 
completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError 
*error){
+            [self openDocumentWithContentsOfURL:fileURL display:setup == nil 
completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError 
*error){
                 if (document && setup) {
-                    if (hasSetup) {
-                        if (documentWasAlreadyOpen == NO)
-                            [document makeWindowControllers];
-                        [document applySetup:setup];
-                        [document showWindows];
-                    } else {
-                        [document applySetup:setup];
-                    }
+                    if (documentWasAlreadyOpen == NO)
+                        [document makeWindowControllers];
+                    [document applySetup:setup];
+                    [document showWindows];
                 }
                 if (completionHandler)
                     completionHandler(document, documentWasAlreadyOpen, error);

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2025-06-04 14:52:15 UTC (rev 15367)
+++ trunk/SKMainWindowController.m      2025-06-05 09:14:44 UTC (rev 15368)
@@ -287,10 +287,11 @@
 }
 
 - (void)windowDidLoad{
-    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
-    BOOL hasWindowSetup = [savedNormalSetup count] > 0;
+    // savedNormalSetup can contain pageIndex and snapshots from non-setup 
bnookmarks
+    BOOL hasWindowSetup = [savedNormalSetup count] > 2;
     NSWindow *window = [self window];
     NSDocument *doc = [self document];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
     
     mwcFlags.needsCleanup = 0;
     
@@ -429,10 +430,11 @@
     }
     
     // Go to page?
+    NSNumber *pageNumber = [savedNormalSetup objectForKey:PAGEINDEX_KEY];
     NSUInteger pageIndex = NSNotFound;
     NSString *pointString = nil;
-    if (hasWindowSetup) {
-        pageIndex = [[savedNormalSetup objectForKey:PAGEINDEX_KEY] 
unsignedIntegerValue];
+    if (pageNumber) {
+        pageIndex = [pageNumber unsignedIntegerValue];
         pointString = [savedNormalSetup objectForKey:SCROLLPOINT_KEY];
     } else if ([sud boolForKey:SKRememberLastPageViewedKey]) {
         pageIndex = [[SKBookmarkController sharedBookmarkController] 
pageIndexForRecentDocumentAtURL:[doc fileURL]];
@@ -465,10 +467,8 @@
     }
     
     // Open snapshots?
-    NSArray *snapshotSetups = nil;
-    if (hasWindowSetup)
-        snapshotSetups = [savedNormalSetup objectForKey:SNAPSHOTS_KEY];
-    else if ([sud boolForKey:SKRememberSnapshotsKey])
+    NSArray *snapshotSetups = [savedNormalSetup objectForKey:SNAPSHOTS_KEY];
+    if (snapshotSetups == nil && [sud boolForKey:SKRememberSnapshotsKey])
         snapshotSetups = [[SKBookmarkController sharedBookmarkController] 
snapshotsForRecentDocumentAtURL:[doc fileURL]];
     if ([snapshotSetups count]) {
         if ([[pdfView document] isLocked])

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