diff --git a/spec/integration/startup-spec.coffee b/spec/integration/startup-spec.coffee index d2583ed27..87ecba409 100644 --- a/spec/integration/startup-spec.coffee +++ b/spec/integration/startup-spec.coffee @@ -10,6 +10,7 @@ fs = require "fs" path = require "path" temp = require("temp").track() runAtom = require "./helpers/start-atom" +CSON = require "season" describe "Starting Atom", -> [tempDirPath, otherTempDirPath, atomHome] = [] @@ -197,6 +198,17 @@ describe "Starting Atom", -> .waitForExist("atom-workspace") .waitForPaneItemCount(1, 5000) + it "doesn't open a new window if openEmptyEditorOnStart is disabled", -> + configPath = path.join(atomHome, 'config.cson') + config = CSON.readFileSync(configPath) + config['*'].core = {openEmptyEditorOnStart: false} + CSON.writeFileSync(configPath, config) + + runAtom [], {ATOM_HOME: atomHome}, (client) -> + client + .waitForExist("atom-workspace") + .waitForPaneItemCount(0, 5000) + it "reopens any previously opened windows", -> runAtom [tempDirPath], {ATOM_HOME: atomHome}, (client) -> client diff --git a/src/atom.coffee b/src/atom.coffee index 28058f8dd..05228b6ca 100644 --- a/src/atom.coffee +++ b/src/atom.coffee @@ -669,6 +669,7 @@ class Atom extends Model @windowEventHandler?.unsubscribe() openInitialEmptyEditorIfNecessary: -> + return unless @config.get('core.openEmptyEditorOnStart') if @getLoadSettings().initialPaths?.length is 0 and @workspace.getPaneItems().length is 0 @workspace.open(null) diff --git a/src/config-schema.coffee b/src/config-schema.coffee index a1bd91cc7..d8eeb6fe3 100644 --- a/src/config-schema.coffee +++ b/src/config-schema.coffee @@ -89,6 +89,10 @@ module.exports = 'windows1258', 'windows866' ] + openEmptyEditorOnStart: + description: 'Automatically opens an empty editor when atom starts.' + type: 'boolean' + default: true editor: type: 'object'