Revision: 15160
          http://sourceforge.net/p/skim-app/code/15160
Author:   hofman
Date:     2025-05-06 16:51:29 +0000 (Tue, 06 May 2025)
Log Message:
-----------
Allow choice between reopening last open files oonly for default launches or 
always, reopen in applicationWillFinishLaunching when always, otherwise at 
applicationDidFinishLaunching

Modified Paths:
--------------
    trunk/Base.lproj/GeneralPreferences.xib
    trunk/InitialUserDefaults.plist
    trunk/SKApplicationController.h
    trunk/SKApplicationController.m
    trunk/de.lproj/GeneralPreferences.strings
    trunk/en.lproj/GeneralPreferences.strings
    trunk/es.lproj/GeneralPreferences.strings
    trunk/fr.lproj/GeneralPreferences.strings
    trunk/it.lproj/GeneralPreferences.strings
    trunk/ja.lproj/GeneralPreferences.strings
    trunk/nl.lproj/GeneralPreferences.strings
    trunk/pl.lproj/GeneralPreferences.strings
    trunk/ru.lproj/GeneralPreferences.strings
    trunk/zh_CN.lproj/GeneralPreferences.strings
    trunk/zh_TW.lproj/GeneralPreferences.strings

Modified: trunk/Base.lproj/GeneralPreferences.xib
===================================================================
--- trunk/Base.lproj/GeneralPreferences.xib     2025-05-06 15:03:40 UTC (rev 
15159)
+++ trunk/Base.lproj/GeneralPreferences.xib     2025-05-06 16:51:29 UTC (rev 
15160)
@@ -15,18 +15,8 @@
         <customObject id="-1" userLabel="First Responder" 
customClass="FirstResponder"/>
         <customObject id="-3" userLabel="Application" customClass="NSObject"/>
         <customView translatesAutoresizingMaskIntoConstraints="NO" id="1">
-            <rect key="frame" x="0.0" y="0.0" width="340" height="423"/>
+            <rect key="frame" x="0.0" y="0.0" width="340" height="451"/>
             <subviews>
-                <button toolTip="Remember and reopen files from a previous 
run" horizontalHuggingPriority="252" verticalHuggingPriority="750" 
imageHugsTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2">
-                    <rect key="frame" x="18" y="386" width="222" height="18"/>
-                    <buttonCell key="cell" type="check" title="Reopen last 
open files at startup" bezelStyle="regularSquare" imagePosition="left" 
alignment="left" inset="2" id="50">
-                        <behavior key="behavior" changeContents="YES" 
doesNotDimImage="YES" lightByContents="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <connections>
-                        <binding destination="58" name="value" 
keyPath="values.SKReopenLastOpenFiles" id="60"/>
-                    </connections>
-                </button>
                 <button toolTip="Open the contents pane only when the file has 
a table of contents" horizontalHuggingPriority="252" 
verticalHuggingPriority="750" imageHugsTitle="YES" 
translatesAutoresizingMaskIntoConstraints="NO" id="3">
                     <rect key="frame" x="18" y="317" width="252" height="18"/>
                     <buttonCell key="cell" type="check" title="Open pane only 
for Table of Contents" bezelStyle="regularSquare" imagePosition="left" 
alignment="left" inset="2" id="49">
@@ -212,7 +202,7 @@
                     </connections>
                 </popUpButton>
                 <textField horizontalHuggingPriority="252" 
verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" 
id="f9u-Df-2s9">
-                    <rect key="frame" x="20" y="217" width="150" height="16"/>
+                    <rect key="frame" x="18" y="217" width="152" height="16"/>
                     <textFieldCell key="cell" scrollable="YES" 
lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Settings for Full 
Screen:" id="rQz-G0-Jos">
                         <font key="font" metaFont="system"/>
                         <color key="textColor" name="controlTextColor" 
catalog="System" colorSpace="catalog"/>
@@ -219,6 +209,31 @@
                         <color key="backgroundColor" name="controlColor" 
catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
+                <popUpButton toolTip="Remember and reopen files from a 
previous run" verticalHuggingPriority="750" 
translatesAutoresizingMaskIntoConstraints="NO" id="lVN-xI-ijg">
+                    <rect key="frame" x="27" y="383" width="127" height="25"/>
+                    <popUpButtonCell key="cell" type="push" title="Never" 
bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" 
borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" 
selectedItem="gtz-vr-anS" id="D0s-vg-Wzx">
+                        <behavior key="behavior" lightByBackground="YES" 
lightByGray="YES"/>
+                        <font key="font" metaFont="menu"/>
+                        <menu key="menu" id="hqY-Yk-Ef0">
+                            <items>
+                                <menuItem title="Never" state="on" 
id="gtz-vr-anS"/>
+                                <menuItem title="Default launch" tag="1" 
id="njb-dx-Ovw"/>
+                                <menuItem title="Always" tag="2" 
id="jKc-Tn-o1b"/>
+                            </items>
+                        </menu>
+                    </popUpButtonCell>
+                    <connections>
+                        <binding destination="58" name="selectedTag" 
keyPath="values.SKReopenLastOpenFiles" id="tk5-Kv-QW6"/>
+                    </connections>
+                </popUpButton>
+                <textField horizontalHuggingPriority="252" 
verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" 
id="hos-Of-u1Q" userLabel="Open files:">
+                    <rect key="frame" x="18" y="415" width="204" height="16"/>
+                    <textFieldCell key="cell" scrollable="YES" 
lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" 
title="Reopen last open files at startup:" id="bXV-8Q-oZQ">
+                        <font key="font" metaFont="system"/>
+                        <color key="textColor" name="controlTextColor" 
catalog="System" colorSpace="catalog"/>
+                        <color key="backgroundColor" name="controlColor" 
catalog="System" colorSpace="catalog"/>
+                    </textFieldCell>
+                </textField>
             </subviews>
             <constraints>
                 <constraint firstItem="11" firstAttribute="top" 
secondItem="13" secondAttribute="bottom" constant="12" id="0FC-yH-TEU"/>
@@ -225,20 +240,27 @@
                 <constraint firstItem="10" firstAttribute="top" secondItem="3" 
secondAttribute="bottom" constant="6" symbolic="YES" id="0kE-Qf-IKS"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="18" secondAttribute="trailing" 
constant="20" symbolic="YES" id="1dC-9R-56p"/>
                 <constraint firstItem="14" firstAttribute="leading" 
secondItem="15" secondAttribute="trailing" constant="8" symbolic="YES" 
id="1pJ-ZZ-JaA"/>
+                <constraint firstItem="YMN-MA-BZc" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="20r-lI-K3p"/>
                 <constraint firstItem="f9u-Df-2s9" firstAttribute="leading" 
relation="greaterThanOrEqual" secondItem="1" secondAttribute="leading" 
constant="20" symbolic="YES" id="32P-dV-Eex"/>
-                <constraint firstItem="20" firstAttribute="leading" 
secondItem="2" secondAttribute="leading" id="3gQ-UZ-qCQ"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="13" secondAttribute="trailing" 
constant="20" symbolic="YES" id="3k2-tt-YTb"/>
+                <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="hos-Of-u1Q" 
secondAttribute="trailing" constant="20" symbolic="YES" id="6l3-zE-gSM"/>
+                <constraint firstItem="3" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="7ep-6b-PdA"/>
                 <constraint firstItem="14" firstAttribute="leading" 
secondItem="13" secondAttribute="leading" id="8iP-uW-VDS"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="9" secondAttribute="trailing" 
constant="20" symbolic="YES" id="9zb-Rk-CmA"/>
+                <constraint firstItem="lVN-xI-ijg" firstAttribute="top" 
secondItem="hos-Of-u1Q" secondAttribute="bottom" constant="8" symbolic="YES" 
id="A23-MT-CLp"/>
                 <constraint firstItem="19" firstAttribute="leading" 
secondItem="5" secondAttribute="leading" id="CG0-Ds-aXI"/>
                 <constraint firstItem="3" firstAttribute="top" 
secondItem="ClK-rQ-vsN" secondAttribute="bottom" constant="8" symbolic="YES" 
id="Dcc-qq-NoQ"/>
+                <constraint firstItem="15" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="Doc-wp-yxY"/>
+                <constraint firstItem="5" firstAttribute="top" 
secondItem="lVN-xI-ijg" secondAttribute="bottom" constant="12" id="EXD-Ez-Qk4"/>
                 <constraint firstItem="6" firstAttribute="leading" 
secondItem="5" secondAttribute="leading" id="GHw-r2-IJp"/>
                 <constraint firstItem="YMN-MA-BZc" firstAttribute="top" 
secondItem="11" secondAttribute="bottom" constant="12" id="GZE-6M-v8w"/>
                 <constraint firstItem="ClK-rQ-vsN" firstAttribute="leading" 
secondItem="16" secondAttribute="trailing" constant="8" symbolic="YES" 
id="Gcb-Ih-tm0"/>
-                <constraint firstItem="7" firstAttribute="leading" 
secondItem="2" secondAttribute="leading" id="Gig-Od-oNe"/>
+                <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="lVN-xI-ijg" 
secondAttribute="trailing" constant="20" symbolic="YES" id="HDt-uN-fK8"/>
+                <constraint firstItem="16" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="HMC-6w-OcU"/>
                 <constraint firstItem="11" firstAttribute="leading" 
secondItem="5" secondAttribute="leading" id="I9Q-aa-Z5s"/>
                 <constraint firstItem="14" firstAttribute="firstBaseline" 
secondItem="15" secondAttribute="firstBaseline" id="Ie9-gI-Gij"/>
                 <constraint firstItem="8" firstAttribute="leading" 
secondItem="5" secondAttribute="leading" id="KGY-vQ-NxW"/>
+                <constraint firstItem="f9u-Df-2s9" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="Kj1-8n-wxA"/>
                 <constraint firstItem="ClK-rQ-vsN" firstAttribute="top" 
secondItem="5" secondAttribute="bottom" constant="12" id="Lpu-p7-gyl"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="14" secondAttribute="trailing" 
constant="20" symbolic="YES" id="Lyc-Te-X32"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="15" secondAttribute="trailing" 
constant="20" symbolic="YES" id="Nkq-Ax-nJg"/>
@@ -252,14 +274,17 @@
                 <constraint firstItem="9" firstAttribute="leading" 
secondItem="7" secondAttribute="trailing" constant="8" symbolic="YES" 
id="UHb-CR-xG0"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="YMN-MA-BZc" 
secondAttribute="trailing" constant="20" symbolic="YES" id="VuG-1Z-TbY"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="10" secondAttribute="trailing" 
constant="20" symbolic="YES" id="WRj-j0-8hB"/>
-                <constraint firstItem="16" firstAttribute="leading" 
secondItem="2" secondAttribute="leading" id="X5u-gc-Hsr"/>
+                <constraint firstItem="7" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="WeX-oG-9fM"/>
+                <constraint firstItem="20" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="XBW-mv-Spu"/>
                 <constraint firstItem="6" firstAttribute="top" secondItem="9" 
secondAttribute="bottom" constant="12" id="XWD-bi-DNu"/>
                 <constraint firstItem="15" firstAttribute="leading" 
secondItem="1" secondAttribute="leading" priority="750" constant="20" 
symbolic="YES" id="Zu8-ZB-EUH"/>
                 <constraint firstItem="duc-5M-yv6" 
firstAttribute="firstBaseline" secondItem="20" secondAttribute="firstBaseline" 
id="Zx2-aa-pa9"/>
-                <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="2" secondAttribute="trailing" 
constant="20" symbolic="YES" id="apj-25-RFr"/>
-                <constraint firstItem="5" firstAttribute="top" secondItem="2" 
secondAttribute="bottom" constant="12" id="fEc-4e-XWs"/>
+                <constraint firstItem="12" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="bLu-jp-YjC"/>
+                <constraint firstItem="hos-Of-u1Q" firstAttribute="top" 
secondItem="1" secondAttribute="top" constant="20" symbolic="YES" 
id="bPi-A8-Wp7"/>
+                <constraint firstItem="18" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="dt2-ti-H14"/>
                 <constraint firstItem="11" firstAttribute="trailing" 
secondItem="5" secondAttribute="trailing" id="fmK-oo-I6v"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="20" secondAttribute="trailing" 
constant="20" symbolic="YES" id="g4n-FP-2OB"/>
+                <constraint firstItem="lVN-xI-ijg" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" constant="10" 
id="hSI-ia-3FQ"/>
                 <constraint firstItem="13" firstAttribute="width" 
secondItem="14" secondAttribute="width" id="iDb-LY-iDA"/>
                 <constraint firstItem="4" firstAttribute="top" secondItem="6" 
secondAttribute="bottom" constant="12" id="jmv-eQ-PmW"/>
                 <constraint firstItem="8" firstAttribute="trailing" 
secondItem="5" secondAttribute="trailing" id="jne-As-Stw"/>
@@ -266,28 +291,22 @@
                 <constraint firstItem="14" firstAttribute="top" 
secondItem="18" secondAttribute="bottom" constant="8" id="kFa-WK-niq"/>
                 <constraint firstItem="6" firstAttribute="trailing" 
secondItem="5" secondAttribute="trailing" id="klH-cN-ajl"/>
                 <constraint firstItem="duc-5M-yv6" firstAttribute="leading" 
secondItem="20" secondAttribute="trailing" constant="8" symbolic="YES" 
id="kpP-fK-RP0"/>
-                <constraint firstItem="10" firstAttribute="leading" 
secondItem="2" secondAttribute="leading" id="lJK-au-NH1"/>
+                <constraint firstItem="4" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="lGd-Fh-0GF"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="duc-5M-yv6" 
secondAttribute="trailing" constant="20" symbolic="YES" id="ldM-OS-AyE"/>
-                <constraint firstItem="2" firstAttribute="top" secondItem="1" 
secondAttribute="top" constant="20" symbolic="YES" id="mMh-gX-FVQ"/>
                 <constraint firstItem="18" firstAttribute="top" 
secondItem="10" secondAttribute="bottom" constant="6" symbolic="YES" 
id="n6b-L7-vO4"/>
                 <constraint firstItem="13" firstAttribute="top" 
secondItem="14" secondAttribute="bottom" constant="12" symbolic="YES" 
id="npT-XL-y6y"/>
                 <constraint firstItem="12" firstAttribute="top" 
secondItem="YMN-MA-BZc" secondAttribute="bottom" constant="6" symbolic="YES" 
id="pRs-P8-idK"/>
                 <constraint firstAttribute="bottom" secondItem="duc-5M-yv6" 
secondAttribute="bottom" constant="20" symbolic="YES" id="prN-jO-7Ys"/>
                 <constraint firstItem="13" firstAttribute="leading" 
secondItem="f9u-Df-2s9" secondAttribute="trailing" constant="8" symbolic="YES" 
id="qPH-G3-xAj"/>
-                <constraint firstItem="YMN-MA-BZc" firstAttribute="leading" 
secondItem="2" secondAttribute="leading" id="rQg-cx-g1w"/>
                 <constraint firstItem="ClK-rQ-vsN" 
firstAttribute="firstBaseline" secondItem="16" secondAttribute="firstBaseline" 
id="rVj-ct-mRq"/>
                 <constraint firstItem="5" firstAttribute="leading" 
secondItem="1" secondAttribute="leading" constant="12" id="rkP-h4-vkE"/>
                 <constraint firstItem="duc-5M-yv6" firstAttribute="top" 
secondItem="19" secondAttribute="bottom" constant="12" id="rxL-uA-y9K"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="12" secondAttribute="trailing" 
constant="20" symbolic="YES" id="sf3-2d-1Yx"/>
                 <constraint firstAttribute="trailing" 
relation="greaterThanOrEqual" secondItem="ClK-rQ-vsN" 
secondAttribute="trailing" constant="20" symbolic="YES" id="t5G-XJ-g2V"/>
-                <constraint firstItem="2" firstAttribute="leading" 
secondItem="1" secondAttribute="leading" constant="20" symbolic="YES" 
id="tMJ-tr-Biu"/>
-                <constraint firstItem="3" firstAttribute="leading" 
secondItem="2" secondAttribute="leading" id="ts7-AR-Lxc"/>
                 <constraint firstAttribute="trailing" secondItem="5" 
secondAttribute="trailing" constant="12" id="uYa-Mh-FS5"/>
-                <constraint firstItem="4" firstAttribute="leading" 
secondItem="2" secondAttribute="leading" id="ubd-z2-fUk"/>
-                <constraint firstItem="18" firstAttribute="leading" 
secondItem="2" secondAttribute="leading" id="uqD-YV-TJ1"/>
+                <constraint firstItem="10" firstAttribute="leading" 
secondItem="hos-Of-u1Q" secondAttribute="leading" id="vK9-EU-mar"/>
                 <constraint firstItem="13" firstAttribute="firstBaseline" 
secondItem="f9u-Df-2s9" secondAttribute="firstBaseline" id="vRB-kQ-LI2"/>
                 <constraint firstItem="9" firstAttribute="top" secondItem="8" 
secondAttribute="bottom" constant="12" id="wRZ-ah-TXh"/>
-                <constraint firstItem="12" firstAttribute="leading" 
secondItem="2" secondAttribute="leading" id="x2g-Di-rcn"/>
                 <constraint firstItem="9" firstAttribute="firstBaseline" 
secondItem="7" secondAttribute="firstBaseline" id="xO9-QM-sbG"/>
             </constraints>
             <point key="canvasLocation" x="139.5" y="154.5"/>

Modified: trunk/InitialUserDefaults.plist
===================================================================
--- trunk/InitialUserDefaults.plist     2025-05-06 15:03:40 UTC (rev 15159)
+++ trunk/InitialUserDefaults.plist     2025-05-06 16:51:29 UTC (rev 15160)
@@ -19,7 +19,7 @@
                <key>SKInitialWindowSizeOption</key>
                <integer>0</integer>
                <key>SKReopenLastOpenFiles</key>
-               <false/>
+               <integer>0</integer>
                <key>SKRememberLastPageViewed</key>
                <false/>
                <key>SKRememberSnapshots</key>

Modified: trunk/SKApplicationController.h
===================================================================
--- trunk/SKApplicationController.h     2025-05-06 15:03:40 UTC (rev 15159)
+++ trunk/SKApplicationController.h     2025-05-06 16:51:29 UTC (rev 15160)
@@ -50,7 +50,6 @@
     NSMenu *noteColumnsMenu;
     NSMenu *noteTypeMenu;
     NSTimer *currentDocumentsTimer;
-    BOOL didCheckReopen;
     BOOL remoteScrolling;
     id activity;
     SKPreferenceController *preferenceController;

Modified: trunk/SKApplicationController.m
===================================================================
--- trunk/SKApplicationController.m     2025-05-06 15:03:40 UTC (rev 15159)
+++ trunk/SKApplicationController.m     2025-05-06 16:51:29 UTC (rev 15160)
@@ -165,60 +165,54 @@
     [[[NSDocumentController sharedDocumentController] documents] 
makeObjectsPerformSelector:forced ? @selector(saveRecentDocumentInfo) : 
@selector(saveRecentDocumentInfoIfNeeded)];
 }
 
-#pragma mark NSApplication delegate
-
-- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)application {
-    if (didCheckReopen == NO) {
-        NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+- (void)reopenLastOpenFiles {
+    SKBookmark *previousSession = [[SKBookmarkController 
sharedBookmarkController] previousSession];
+    NSUInteger numberOfDocs = [[previousSession children] count];
+    
+    if (numberOfDocs > REOPEN_WARNING_LIMIT) {
+        NSAlert *alert = [[NSAlert alloc] init];
+        [alert setMessageText:[NSString 
stringWithFormat:NSLocalizedString(@"Are you sure you want to open %lu 
documents?", @"Message in alert dialog"), (unsigned long)numberOfDocs]];
+        [alert setInformativeText:NSLocalizedString(@"Each document opens in a 
separate window.", @"Informative text in alert dialog")];
+        [alert addButtonWithTitle:NSLocalizedString(@"Cancel", @"Button 
title")];
+        [alert addButtonWithTitle:NSLocalizedString(@"Open", @"Button title")];
         
-        didCheckReopen = YES;
-        
-        if ([sud boolForKey:SKReopenLastOpenFilesKey] || [sud 
boolForKey:SKIsRelaunchKey]) {
-            // just remove this in case opening the last open files crashes 
the app after a relaunch
-            if ([sud objectForKey:SKIsRelaunchKey]) {
-                [sud removeObjectForKey:SKIsRelaunchKey];
-                [sud synchronize];
-            }
-            
-            SKBookmark *previousSession = [[SKBookmarkController 
sharedBookmarkController] previousSession];
-            NSUInteger numberOfDocs = [[previousSession children] count];
-            
-            if (numberOfDocs > REOPEN_WARNING_LIMIT) {
-                NSAlert *alert = [[NSAlert alloc] init];
-                [alert setMessageText:[NSString 
stringWithFormat:NSLocalizedString(@"Are you sure you want to open %lu 
documents?", @"Message in alert dialog"), (unsigned long)numberOfDocs]];
-                [alert setInformativeText:NSLocalizedString(@"Each document 
opens in a separate window.", @"Informative text in alert dialog")];
-                [alert addButtonWithTitle:NSLocalizedString(@"Cancel", 
@"Button title")];
-                [alert addButtonWithTitle:NSLocalizedString(@"Open", @"Button 
title")];
-                
-                if (NSAlertFirstButtonReturn == [alert runModal])
-                    previousSession = nil;
-            }
-            
-            if (previousSession)
-                [[NSDocumentController sharedDocumentController] 
openDocumentWithBookmark:previousSession completionHandler:^(NSDocument 
*document, BOOL documentWasAlreadyOpen, NSError *error){
-                    if (document == nil && error && [error 
isUserCancelledError] == NO)
-                        [NSApp presentError:error];
-                }];
-        }
+        if (NSAlertFirstButtonReturn == [alert runModal])
+            previousSession = nil;
     }
-    return NO;
-}    
+    
+    if (previousSession)
+        [[NSDocumentController sharedDocumentController] 
openDocumentWithBookmark:previousSession completionHandler:^(NSDocument 
*document, BOOL documentWasAlreadyOpen, NSError *error){
+            if (document == nil && error && [error isUserCancelledError] == NO)
+                [NSApp presentError:error];
+        }];
+}
 
+#pragma mark NSApplication delegate
+
 - (void)applicationWillFinishLaunching:(NSNotification *)aNotification {
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    
     [NSImage makeImages];
     [NSColor makeHighlightColors];
     [NSValueTransformer registerCustomTransformers];
     [PDFPage setUsesSequentialPageNumbering:[[NSUserDefaults 
standardUserDefaults] boolForKey:SKSequentialPageNumberingKey]];
-    [[NSUserDefaults standardUserDefaults] addObserver:self 
forKeyPath:SKSequentialPageNumberingKey options:0 
context:&SKApplicationControllerDefaultsObservationContext];
+    [sud addObserver:self forKeyPath:SKSequentialPageNumberingKey options:0 
context:&SKApplicationControllerDefaultsObservationContext];
+    
+    if ([sud integerForKey:SKReopenLastOpenFilesKey] == 2 || [sud 
boolForKey:SKIsRelaunchKey]) {
+        // just remove this in case opening the last open files crashes the 
app after a relaunch
+        if ([sud objectForKey:SKIsRelaunchKey]) {
+            [sud removeObjectForKey:SKIsRelaunchKey];
+            [sud synchronize];
+        }
+        [self reopenLastOpenFiles];
+    }
 }
 
 - (void)applicationDidFinishLaunching:(NSNotification *)aNotification{
     NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
     
-    if (didCheckReopen == NO && [[[aNotification userInfo] 
objectForKey:NSApplicationLaunchIsDefaultLaunchKey] boolValue])
-        [self applicationShouldOpenUntitledFile:NSApp];
-    didCheckReopen = YES;
-    [sud removeObjectForKey:SKIsRelaunchKey];
+    if ([sud integerForKey:SKReopenLastOpenFilesKey] == 1 && [[[aNotification 
userInfo] objectForKey:NSApplicationLaunchIsDefaultLaunchKey] boolValue])
+        [self reopenLastOpenFiles];
     
     [NSApp setServicesProvider:[NSDocumentController 
sharedDocumentController]];
     
@@ -250,9 +244,8 @@
     [NSApp setAutomaticCustomizeTouchBarMenuItemEnabled:YES];
 }
 
-// we don't want to reopen last open files when re-activating the app
-- (BOOL)applicationShouldHandleReopen:(NSApplication *)application 
hasVisibleWindows:(BOOL)flag {
-    return flag;
+- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)application {
+    return NO;
 }
 
 - (void)application:(NSApplication *)application openURLs:(NSArray *)urls {

Modified: trunk/de.lproj/GeneralPreferences.strings
===================================================================
(Binary files differ)

Modified: trunk/en.lproj/GeneralPreferences.strings
===================================================================
(Binary files differ)

Modified: trunk/es.lproj/GeneralPreferences.strings
===================================================================
(Binary files differ)

Modified: trunk/fr.lproj/GeneralPreferences.strings
===================================================================
(Binary files differ)

Modified: trunk/it.lproj/GeneralPreferences.strings
===================================================================
(Binary files differ)

Modified: trunk/ja.lproj/GeneralPreferences.strings
===================================================================
(Binary files differ)

Modified: trunk/nl.lproj/GeneralPreferences.strings
===================================================================
(Binary files differ)

Modified: trunk/pl.lproj/GeneralPreferences.strings
===================================================================
(Binary files differ)

Modified: trunk/ru.lproj/GeneralPreferences.strings
===================================================================
(Binary files differ)

Modified: trunk/zh_CN.lproj/GeneralPreferences.strings
===================================================================
(Binary files differ)

Modified: trunk/zh_TW.lproj/GeneralPreferences.strings
===================================================================
(Binary files differ)

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