From 339a7f511ee76c8c7c83633b462c89a1beb09b2d Mon Sep 17 00:00:00 2001 From: joshaber Date: Wed, 13 Jan 2016 16:29:23 -0500 Subject: [PATCH 01/13] 1.5.0-beta0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bb973f94d..d4ca3996b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "atom", "productName": "Atom", - "version": "1.5.0-dev", + "version": "1.5.0-beta0", "description": "A hackable text editor for the 21st Century.", "main": "./src/browser/main.js", "repository": { From 91bcda2d2a9efe01f5055f981704cb69b597fcc9 Mon Sep 17 00:00:00 2001 From: Josh Abernathy Date: Thu, 14 Jan 2016 11:37:43 -0500 Subject: [PATCH 02/13] Merge pull request #10415 from atom/wl-cascade-fixes Don't cascade maximized windows --- src/browser/atom-application.coffee | 1 + src/browser/atom-window.coffee | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index 3096fb7c0..44848eb72 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -369,6 +369,7 @@ class AtomApplication # Get the dimensions for opening a new window by cascading as appropriate to # the platform. getDimensionsForNewWindow: -> + return if (@focusedWindow() ? @lastFocusedWindow)?.isMaximized() dimensions = (@focusedWindow() ? @lastFocusedWindow)?.getDimensions() offset = @getWindowOffsetForCurrentPlatform() if dimensions? and offset? diff --git a/src/browser/atom-window.coffee b/src/browser/atom-window.coffee index c507b634c..6e2d39266 100644 --- a/src/browser/atom-window.coffee +++ b/src/browser/atom-window.coffee @@ -212,6 +212,8 @@ class AtomWindow isFocused: -> @browserWindow.isFocused() + isMaximized: -> @browserWindow.isMaximized() + isMinimized: -> @browserWindow.isMinimized() isWebViewFocused: -> @browserWindow.isWebViewFocused() From dc413b8cd8ec4217ec561cacdf01ec005d270fdf Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 5 Jan 2016 17:23:32 -0800 Subject: [PATCH 03/13] :arrow_up: text-buffer --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ade0e0261..8b23a51c8 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "service-hub": "^0.7.0", "source-map-support": "^0.3.2", "temp": "0.8.1", - "text-buffer": "8.1.2", + "text-buffer": "8.1.4", "typescript-simple": "1.0.0", "underscore-plus": "^1.6.6", "yargs": "^3.23.0" From 2cf2ccbc0410ee11ac7f76494c2733e638432681 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 25 Jan 2016 09:41:07 -0800 Subject: [PATCH 04/13] Prepare 1.4.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8b23a51c8..140cbdf0d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "atom", "productName": "Atom", - "version": "1.4.0", + "version": "1.4.1", "description": "A hackable text editor for the 21st Century.", "main": "./src/browser/main.js", "repository": { From b6fdbf4dc36d7eac4f5d62c537a3ccab25adcbe8 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 25 Jan 2016 10:29:46 -0800 Subject: [PATCH 05/13] Prepare 1.5.0-beta1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d4ca3996b..be73b2f5d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "atom", "productName": "Atom", - "version": "1.5.0-beta0", + "version": "1.5.0-beta1", "description": "A hackable text editor for the 21st Century.", "main": "./src/browser/main.js", "repository": { From 73b546930a06ed82f667bd41bf37042e772efee1 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 27 Jan 2016 15:32:43 -0800 Subject: [PATCH 06/13] Prepare 1.4.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 140cbdf0d..9ba4aee5d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "atom", "productName": "Atom", - "version": "1.4.1", + "version": "1.4.2", "description": "A hackable text editor for the 21st Century.", "main": "./src/browser/main.js", "repository": { From ff2751bbef8c574ef4637557d08b3acc2aa1c462 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 25 Jan 2016 15:28:50 -0800 Subject: [PATCH 07/13] Merge pull request #10581 from atom/mb-fix-legacy-config-api Require package's main module in legacy activateConfig method --- src/package.coffee | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/package.coffee b/src/package.coffee index b831b3c55..8230ce4e4 100644 --- a/src/package.coffee +++ b/src/package.coffee @@ -158,7 +158,9 @@ class Package false # TODO: Remove. Settings view calls this method currently. - activateConfig: -> @registerConfigSchemaFromMainModule() + activateConfig: -> + @requireMainModule() + @registerConfigSchemaFromMainModule() activateStylesheets: -> return if @stylesheetsActivated From 42d509ca4e5dedf3392bbd38ac33b9937bd548a5 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 14 Dec 2015 17:38:36 -0800 Subject: [PATCH 08/13] Merge pull request #10062 from atom/mb-emit-state-update-on-model-scroll Emit state update when model's scroll position is changed --- spec/text-editor-presenter-spec.coffee | 5 +++++ src/text-editor-presenter.coffee | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/spec/text-editor-presenter-spec.coffee b/spec/text-editor-presenter-spec.coffee index 2aeb8822e..0ebb1c29f 100644 --- a/spec/text-editor-presenter-spec.coffee +++ b/spec/text-editor-presenter-spec.coffee @@ -803,6 +803,11 @@ describe "TextEditorPresenter", -> presenter.getState() # commits scroll position expect(editor.getFirstVisibleScreenRow()).toBe 6 + it "updates when the model's scroll position is changed directly", -> + presenter = buildPresenter(scrollTop: 0, explicitHeight: 20, horizontalScrollbarHeight: 10, lineHeight: 10) + expectStateUpdate presenter, -> editor.setFirstVisibleScreenRow(1) + expect(getState(presenter).content.scrollTop).toBe 10 + it "reassigns the scrollTop if it exceeds the max possible value after lines are removed", -> presenter = buildPresenter(scrollTop: 80, lineHeight: 10, explicitHeight: 50, horizontalScrollbarHeight: 0) expect(presenter.getState().content.scrollTop).toBe(80) diff --git a/src/text-editor-presenter.coffee b/src/text-editor-presenter.coffee index 405e34548..d8c001ca0 100644 --- a/src/text-editor-presenter.coffee +++ b/src/text-editor-presenter.coffee @@ -1442,7 +1442,7 @@ class TextEditorPresenter @emitDidUpdateState() didChangeFirstVisibleScreenRow: (screenRow) -> - @updateScrollTop(screenRow * @lineHeight) + @setScrollTop(screenRow * @lineHeight) getVerticalScrollMarginInPixels: -> Math.round(@model.getVerticalScrollMargin() * @lineHeight) From 198989b9075d9af806d9b124b2488eff31a6d6c4 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 27 Jan 2016 15:36:12 -0800 Subject: [PATCH 09/13] Prepare 1.5.0-beta2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index be73b2f5d..3e88c9e8c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "atom", "productName": "Atom", - "version": "1.5.0-beta1", + "version": "1.5.0-beta2", "description": "A hackable text editor for the 21st Century.", "main": "./src/browser/main.js", "repository": { From fb0cb452ea6fbe3abe3193269cbccba24c80c484 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 27 Jan 2016 23:04:30 -0800 Subject: [PATCH 10/13] Use old presenter interface in presenter spec --- spec/text-editor-presenter-spec.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/text-editor-presenter-spec.coffee b/spec/text-editor-presenter-spec.coffee index 0ebb1c29f..9dc182c51 100644 --- a/spec/text-editor-presenter-spec.coffee +++ b/spec/text-editor-presenter-spec.coffee @@ -806,7 +806,7 @@ describe "TextEditorPresenter", -> it "updates when the model's scroll position is changed directly", -> presenter = buildPresenter(scrollTop: 0, explicitHeight: 20, horizontalScrollbarHeight: 10, lineHeight: 10) expectStateUpdate presenter, -> editor.setFirstVisibleScreenRow(1) - expect(getState(presenter).content.scrollTop).toBe 10 + expect(presenter.getState().content.scrollTop).toBe 10 it "reassigns the scrollTop if it exceeds the max possible value after lines are removed", -> presenter = buildPresenter(scrollTop: 80, lineHeight: 10, explicitHeight: 50, horizontalScrollbarHeight: 0) From 331637c6b90c53a54dfd3f7f1b0a16706b3c2c17 Mon Sep 17 00:00:00 2001 From: joshaber Date: Mon, 1 Feb 2016 15:25:40 -0500 Subject: [PATCH 11/13] 1.5.0-beta3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3e88c9e8c..6815ed9c6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "atom", "productName": "Atom", - "version": "1.5.0-beta2", + "version": "1.5.0-beta3", "description": "A hackable text editor for the 21st Century.", "main": "./src/browser/main.js", "repository": { From e9db64ca91b1e9a77ec6de099392b0e5463b89a7 Mon Sep 17 00:00:00 2001 From: joshaber Date: Mon, 1 Feb 2016 15:26:10 -0500 Subject: [PATCH 12/13] 1.4.3. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9ba4aee5d..9ca0b99da 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "atom", "productName": "Atom", - "version": "1.4.2", + "version": "1.4.3", "description": "A hackable text editor for the 21st Century.", "main": "./src/browser/main.js", "repository": { From 19349edc7ac8b202c3ab696b260c3524034e2d67 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 2 Feb 2016 10:25:23 -0800 Subject: [PATCH 13/13] Only add local paths to recent documents list Also, add them in Workspace::open and not AtomEnvironment::openLocations so that files opened in an existing window will also be added to the list --- spec/workspace-spec.coffee | 21 +++++++++++++++++++++ src/atom-environment.coffee | 2 -- src/workspace.coffee | 6 ++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/spec/workspace-spec.coffee b/spec/workspace-spec.coffee index 35585479b..90883d2a1 100644 --- a/spec/workspace-spec.coffee +++ b/spec/workspace-spec.coffee @@ -471,6 +471,27 @@ describe "Workspace", -> workspace.open("bar://baz").then (item) -> expect(item).toEqual {bar: "bar://baz"} + it "adds the file to the application's recent documents list", -> + spyOn(atom.applicationDelegate, 'addRecentDocument') + + waitsForPromise -> + workspace.open() + + runs -> + expect(atom.applicationDelegate.addRecentDocument).not.toHaveBeenCalled() + + waitsForPromise -> + workspace.open('something://a/url') + + runs -> + expect(atom.applicationDelegate.addRecentDocument).not.toHaveBeenCalled() + + waitsForPromise -> + workspace.open(__filename) + + runs -> + expect(atom.applicationDelegate.addRecentDocument).toHaveBeenCalledWith(__filename) + it "notifies ::onDidAddTextEditor observers", -> absolutePath = require.resolve('./fixtures/dir/a') newEditorHandler = jasmine.createSpy('newEditorHandler') diff --git a/src/atom-environment.coffee b/src/atom-environment.coffee index de52fe55c..e8d656a43 100644 --- a/src/atom-environment.coffee +++ b/src/atom-environment.coffee @@ -885,8 +885,6 @@ class AtomEnvironment extends Model else @project.addPath(pathToOpen) - @applicationDelegate.addRecentDocument(pathToOpen) - unless fs.isDirectorySync(pathToOpen) @workspace?.open(pathToOpen, {initialLine, initialColumn}) diff --git a/src/workspace.coffee b/src/workspace.coffee index f64f58ee0..54ddf6046 100644 --- a/src/workspace.coffee +++ b/src/workspace.coffee @@ -1,4 +1,5 @@ _ = require 'underscore-plus' +url = require 'url' path = require 'path' {join} = path {Emitter, Disposable, CompositeDisposable} = require 'event-kit' @@ -409,6 +410,11 @@ class Workspace extends Model split = options.split uri = @project.resolvePath(uri) + # Avoid adding URLs as recent documents to work-around this Spotlight crash: + # https://github.com/atom/atom/issues/10071 + if uri? and not url.parse(uri).protocol? + @applicationDelegate.addRecentDocument(uri) + pane = @paneContainer.paneForURI(uri) if searchAllPanes pane ?= switch split when 'left'