Pass persisted window sessions as foldersToOpen

This commit is contained in:
Ash Wilson 2019-01-24 11:07:00 -05:00
parent 02e1ae4b0f
commit 1ecff536c7
No known key found for this signature in database
GPG Key ID: 81B1DDB704F69D2A

View File

@ -210,6 +210,7 @@ class AtomApplication extends EventEmitter {
const {
pathsToOpen,
executedFrom,
foldersToOpen,
urlsToOpen,
benchmark,
benchmarkTest,
@ -248,9 +249,10 @@ class AtomApplication extends EventEmitter {
timeout,
env
})
} else if (pathsToOpen.length > 0) {
} else if (pathsToOpen.length > 0 || foldersToOpen.length > 0) {
return this.openPaths({
pathsToOpen,
foldersToOpen,
executedFrom,
pidToKillWhenClosed,
devMode,
@ -806,6 +808,7 @@ class AtomApplication extends EventEmitter {
//
// options -
// :pathsToOpen - The array of file paths to open
// :foldersToOpen - An array of additional paths to open that must be existing directories
// :pidToKillWhenClosed - The integer of the pid to kill
// :devMode - Boolean to control the opened window's dev mode.
// :safeMode - Boolean to control the opened window's safe mode.
@ -814,6 +817,7 @@ class AtomApplication extends EventEmitter {
// :addToLastWindow - Boolean of whether this should be opened in last focused window.
openPaths ({
pathsToOpen,
foldersToOpen,
executedFrom,
pidToKillWhenClosed,
devMode,
@ -825,8 +829,10 @@ class AtomApplication extends EventEmitter {
addToLastWindow,
env
} = {}) {
if (!pathsToOpen || pathsToOpen.length === 0) return
if (!env) env = process.env
if (!pathsToOpen) pathsToOpen = []
if (!foldersToOpen) foldersToOpen = []
devMode = Boolean(devMode)
safeMode = Boolean(safeMode)
clearWindowState = Boolean(clearWindowState)
@ -837,6 +843,22 @@ class AtomApplication extends EventEmitter {
hasWaitSession: pidToKillWhenClosed != null
})
})
for (const folderToOpen of foldersToOpen) {
locationsToOpen.push({
pathToOpen: folderToOpen,
initialLine: null,
initialColumn: null,
mustBeDirectory: true,
forceAddToWindow: addToLastWindow,
hasWaitSession: pidToKillWhenClosed != null
})
}
if (locationsToOpen.length === 0) {
return
}
const normalizedPathsToOpen = locationsToOpen.map(location => location.pathToOpen).filter(Boolean)
let existingWindow
@ -966,7 +988,7 @@ class AtomApplication extends EventEmitter {
const states = await this.storageFolder.load('application.json')
if (states) {
return states.map(state => ({
pathsToOpen: state.initialPaths,
foldersToOpen: state.initialPaths,
urlsToOpen: [],
devMode: this.devMode,
safeMode: this.safeMode