diff --git a/src/pane-container.coffee b/src/pane-container.coffee index 634012b77..d45f6dcb3 100644 --- a/src/pane-container.coffee +++ b/src/pane-container.coffee @@ -83,3 +83,7 @@ class PaneContainer extends Model itemDestroyed: (item) -> @emit 'item-destroyed', item + + # Private: Called by Model superclass when destroyed + destroyed: -> + pane.destroy() for pane in @getPanes() diff --git a/src/pane.coffee b/src/pane.coffee index 483552afc..bb1395d8d 100644 --- a/src/pane.coffee +++ b/src/pane.coffee @@ -203,7 +203,7 @@ class Pane extends Model @destroyItem(item) for item in @getItems() when item isnt @activeItem destroy: -> - super unless @container?.getPanes().length is 1 + super unless @container?.isAlive() and @container?.getPanes().length is 1 # Private: Called by model superclass. destroyed: -> diff --git a/src/workspace-view.coffee b/src/workspace-view.coffee index 2283ce6f0..d29cdab0c 100644 --- a/src/workspace-view.coffee +++ b/src/workspace-view.coffee @@ -238,8 +238,11 @@ class WorkspaceView extends View @on('editor:attached', attachedCallback) off: => @off('editor:attached', attachedCallback) + # Private: Called by SpacePen + beforeRemove: -> + @model.destroy() + # Private: Destroys everything. remove: -> - @model.destroy() editorView.remove() for editorView in @getEditorViews() super diff --git a/src/workspace.coffee b/src/workspace.coffee index 2a4097216..34cc77dd2 100644 --- a/src/workspace.coffee +++ b/src/workspace.coffee @@ -145,3 +145,7 @@ class Workspace extends Model onPaneItemDestroyed: (item) => if uri = item.getUri?() @destroyedItemUris.push(uri) + + # Private: Called by Model superclass when destroyed + destroyed: -> + @paneContainer.destroy()