From 03e33b44742a02f8fee791058bc5042c8870235d Mon Sep 17 00:00:00 2001 From: joshaber Date: Mon, 8 Feb 2016 21:20:36 -0500 Subject: [PATCH] Use default dimensions the first time we load a window, but saved dimensions after that. --- src/atom-environment.coffee | 26 ++++++++++++++++-------- src/browser/atom-window.coffee | 1 + src/initialize-application-window.coffee | 1 + 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index 7d920b82a..8d230d489 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -384,6 +384,9 @@ class AtomEnvironment extends Model inSpecMode: -> @specMode ?= @getLoadSettings().isSpec + isFirstLoad: -> + @firstLoad ?= @getLoadSettings().firstLoad + # Public: Get the version of the Atom application. # # Returns the version text {String}. @@ -492,8 +495,6 @@ class AtomEnvironment extends Model # Extended: Reload the current window. reload: -> - @saveWindowDimensions() - @applicationDelegate.restartWindow() # Extended: Returns a {Boolean} that is `true` if the current window is maximized. @@ -532,6 +533,11 @@ class AtomEnvironment extends Model @setFullScreen(true) if @workspace?.fullScreen @maximize() if dimensions?.maximized and process.platform isnt 'darwin' + if @isFirstLoad() + loadSettings = getWindowLoadSettings() + loadSettings.firstLoad = false + setWindowLoadSettings(loadSettings) + # Get the dimensions of this window. # # Returns an {Object} with the following keys: @@ -593,7 +599,14 @@ class AtomEnvironment extends Model {x: 0, y: 0, width: Math.min(1024, width), height} restoreWindowDimensions: -> - dimensions = @state.windowDimensions + dimensions = null + + # The first time the window's loaded we want to use the default dimensions. + # But after that, e.g., when the window's been reloaded, we want to use the + # dimensions we've saved for it. + if !@isFirstLoad() + dimensions = @state.windowDimensions + unless @isValidDimensions(dimensions) dimensions = @getDefaultWindowDimensions() @setWindowDimensions(dimensions) @@ -625,7 +638,7 @@ class AtomEnvironment extends Model @registerDefaultTargetForKeymaps() @packages.loadPackages() - @loadStateSync() + @document.body.appendChild(@views.getView(@workspace)) @watchProjectPath() @@ -782,11 +795,6 @@ class AtomEnvironment extends Model @blobStore.save() - saveWindowDimensions: -> - loadSettings = getWindowLoadSettings() - loadSettings['windowDimensions'] = @getWindowDimensions() - setWindowLoadSettings(loadSettings) - saveStateSync: -> return unless @enablePersistence diff --git a/src/browser/atom-window.coffee b/src/browser/atom-window.coffee index 6e2d39266..20ba2ad5c 100644 --- a/src/browser/atom-window.coffee +++ b/src/browser/atom-window.coffee @@ -49,6 +49,7 @@ class AtomWindow loadSettings.devMode ?= false loadSettings.safeMode ?= false loadSettings.atomHome = process.env.ATOM_HOME + loadSettings.firstLoad = true # Only send to the first non-spec window created if @constructor.includeShellLoadTime and not @isSpec diff --git a/src/initialize-application-window.coffee b/src/initialize-application-window.coffee index 57aa33ce0..5c5e936c5 100644 --- a/src/initialize-application-window.coffee +++ b/src/initialize-application-window.coffee @@ -23,6 +23,7 @@ module.exports = ({blobStore}) -> enablePersistence: true }) + atom.loadStateSync() atom.displayWindow() atom.startEditorWindow()