From 466e554ee19cb90e3b0eb5f23924721b6ac4bb9f Mon Sep 17 00:00:00 2001 From: Willem Van Lint Date: Wed, 2 Mar 2016 22:35:33 -0800 Subject: [PATCH] Add TextEditors to the registry on opt-in only --- src/text-editor.coffee | 6 ++++-- src/workspace.coffee | 10 +++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/text-editor.coffee b/src/text-editor.coffee index 5e384fde1..8b503f16e 100644 --- a/src/text-editor.coffee +++ b/src/text-editor.coffee @@ -83,8 +83,9 @@ class TextEditor extends Model state.assert = atomEnvironment.assert.bind(atomEnvironment) state.applicationDelegate = atomEnvironment.applicationDelegate editor = new this(state) - disposable = atomEnvironment.textEditors.add(editor) - editor.onDidDestroy -> disposable.dispose() + if state.registered + disposable = atomEnvironment.textEditors.add(editor) + editor.onDidDestroy -> disposable.dispose() editor constructor: (params={}) -> @@ -155,6 +156,7 @@ class TextEditor extends Model firstVisibleScreenColumn: @getFirstVisibleScreenColumn() displayBuffer: @displayBuffer.serialize() selectionsMarkerLayerId: @selectionsMarkerLayer.id + registered: atom.textEditors.editors.has this subscribeToBuffer: -> @buffer.retain() diff --git a/src/workspace.coffee b/src/workspace.coffee index c925a495a..bdaf19eee 100644 --- a/src/workspace.coffee +++ b/src/workspace.coffee @@ -542,7 +542,10 @@ class Workspace extends Model throw error @project.bufferForPath(filePath, options).then (buffer) => - @buildTextEditor(_.extend({buffer, largeFileMode}, options)) + editor = @buildTextEditor(_.extend({buffer, largeFileMode}, options)) + disposable = atom.textEditors.add(editor) + editor.onDidDestroy -> disposable.dispose() + editor # Public: Returns a {Boolean} that is `true` if `object` is a `TextEditor`. # @@ -558,10 +561,7 @@ class Workspace extends Model @config, @notificationManager, @packageManager, @clipboard, @viewRegistry, @grammarRegistry, @project, @assert, @applicationDelegate }, params) - editor = new TextEditor(params) - disposable = atom.textEditors.add(editor) - editor.onDidDestroy -> disposable.dispose() - editor + new TextEditor(params) # Public: Asynchronously reopens the last-closed item's URI if it hasn't already been # reopened.