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