diff --git a/src/editor-component.coffee b/src/editor-component.coffee index d72fccbf7..870a984fa 100644 --- a/src/editor-component.coffee +++ b/src/editor-component.coffee @@ -183,12 +183,13 @@ EditorComponent = React.createClass @checkForVisibilityChange() componentWillUnmount: -> - @props.parentView.trigger 'editor:will-be-removed', [@props.parentView] + {editor, parentView} = @props + + parentView.trigger 'editor:will-be-removed', [parentView] @unsubscribe() window.removeEventListener 'resize', @requestHeightAndWidthMeasurement clearInterval(@domPollingIntervalId) @domPollingIntervalId = null - @props.editor.destroy() componentWillReceiveProps: (newProps) -> @props.editor.setMini(newProps.mini) diff --git a/src/editor-view.coffee b/src/editor-view.coffee index cc18f7e9e..2f945f458 100644 --- a/src/editor-view.coffee +++ b/src/editor-view.coffee @@ -215,12 +215,22 @@ class EditorView extends View view.css('z-index', 1) @find('.lines').prepend(view) + detach: -> + return unless @attached + super + @attached = false + @unmountComponent() + beforeRemove: -> return unless @attached @attached = false - React.unmountComponentAtNode(@element) if @component.isMounted() + @unmountComponent() + @editor.destroy() @trigger 'editor:detached', this + unmountComponent: -> + React.unmountComponentAtNode(@element) if @component.isMounted() + # Public: Split the editor view left. splitLeft: -> pane = @getPane()