Revision: 16771
          http://sourceforge.net/p/skim-app/code/16771
Author:   hofman
Date:     2026-11-01 17:12:39 +0000 (Sun, 01 Nov 2026)
Log Message:
-----------
gather closed document bookmarks before tryin to open them as a setup

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

Modified: trunk/SKBookmarkController.m
===================================================================
--- trunk/SKBookmarkController.m        2026-11-01 16:57:54 UTC (rev 16770)
+++ trunk/SKBookmarkController.m        2026-11-01 17:12:39 UTC (rev 16771)
@@ -98,6 +98,13 @@
 
 static inline NSLayoutConstraint *trailingConstraint(NSView *view);
 
+enum {
+    SKBookmarkTagBookmarksMenu = 10,
+    SKBookmarkTagPreviousSession,
+    SKBookmarkTagClosedDocuments,
+    SKBookmarkTagCurrentDocument,
+};
+
 @interface SKBookmarkController ()
 - (void)setupToolbar;
 - (void)saveBookmarksData;
@@ -106,6 +113,7 @@
 - (void)startObservingBookmarks:(NSArray *)newBookmarks;
 - (void)stopObservingBookmarks:(NSArray *)oldBookmarks;
 @property (nonatomic, readonly) NSUndoManager *undoManager;
+- (NSArray *)closedDocumentBookmarks;
 @end
 
 @implementation SKBookmarkController
@@ -441,6 +449,11 @@
 }
 
 - (IBAction)openBookmark:(id)sender {
+    SKBookmark *bookmark = [sender representedObject];
+    if ([sender tag] == SKBookmarkTagClosedDocuments && [bookmark 
countOfChildren] == 0) {
+        NSArray *children = [self closedDocumentBookmarks];
+        [bookmark insertChildren:children atIndexes:[NSIndexSet 
indexSetWithIndexesInRange:NSMakeRange(0, [children count])]];
+    }
     [[NSDocumentController sharedDocumentController] 
openDocumentWithBookmark:[sender representedObject] 
completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError 
*error){
         if (document == nil && error && [error isUserCancelledError] == NO)
             [NSApp presentError:error];
@@ -675,13 +688,6 @@
     return NO;
 }
 
-enum {
-    SKBookmarkTagBookmarksMenu = 10,
-    SKBookmarkTagPreviousSession,
-    SKBookmarkTagClosedDocuments,
-    SKBookmarkTagCurrentDocument,
-};
-
 - (void)menuNeedsUpdate:(NSMenu *)menu {
     if (menu == [outlineView menu]) {
         NSInteger row = [outlineView clickedRow];

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