diff --git a/src/cursor.coffee b/src/cursor.coffee index 85573f10e..05242f90a 100644 --- a/src/cursor.coffee +++ b/src/cursor.coffee @@ -26,6 +26,7 @@ class Cursor extends Model destroy: -> @marker.destroy() + @marker = null ### Section: Event Subscription diff --git a/src/selection.coffee b/src/selection.coffee index 8aa86157e..18297e5f7 100644 --- a/src/selection.coffee +++ b/src/selection.coffee @@ -26,6 +26,8 @@ class Selection extends Model destroy: -> @marker.destroy() + @marker = null + @decoration = null isLastSelection: -> this is @editor.getLastSelection() diff --git a/src/text-editor.coffee b/src/text-editor.coffee index 3ee268b95..f3fb7abdb 100644 --- a/src/text-editor.coffee +++ b/src/text-editor.coffee @@ -408,16 +408,27 @@ class TextEditor extends Model @emitter.emit 'did-change', {} destroyed: -> + @emitter.emit 'did-destroy' + @emitter = null @disposables.dispose() @displayLayer.destroy() - @disposables.dispose() + @displayLayer = null + @defaultMarkerLayer = null @tokenizedBuffer.destroy() + @tokenizedBuffer = null selection.destroy() for selection in @selections.slice() - @selectionsMarkerLayer.destroy() + @selections = null + @cursors = null + @selectionsMarkerLayer = null @buffer.release() + @buffer = null + @decorationManager = null @languageMode.destroy() + @languageMode = null @gutterContainer.destroy() - @emitter.emit 'did-destroy' + @gutterContainer = null + @editorElement = null + @presenter = null ### Section: Event Subscription