Merge pull request #14387 from atom/ns-mb-close-and-save-center

Act on active center items only when saving and closing
This commit is contained in:
Nathan Sobo
2017-05-11 14:29:39 -06:00
committed by GitHub
2 changed files with 9 additions and 15 deletions

View File

@@ -2486,7 +2486,7 @@ i = /test/; #FIXME\
waitsForPromise(() => atom.workspace.open())
})
it('closes the active pane item, or the active pane if it is empty, or the current window if there is only the empty root pane', async () => {
it('closes the active center pane item, or the active center pane if it is empty, or the current window if there is only the empty root pane in the center', async () => {
atom.config.set('core.destroyEmptyPanes', false)
const pane1 = atom.workspace.getActivePane()
@@ -2509,6 +2509,7 @@ i = /test/; #FIXME\
expect(pane1.getItems().length).toBe(0)
expect(atom.workspace.getCenter().getPanes().length).toBe(1)
// The dock items should not be closed
await atom.workspace.open({
getTitle: () => 'Permanent Dock Item',
element: document.createElement('div'),
@@ -2523,13 +2524,6 @@ i = /test/; #FIXME\
expect(atom.workspace.getLeftDock().getPaneItems().length).toBe(2)
atom.workspace.closeActivePaneItemOrEmptyPaneOrWindow()
expect(atom.workspace.getLeftDock().getPaneItems().length).toBe(1)
atom.workspace.closeActivePaneItemOrEmptyPaneOrWindow()
expect(atom.workspace.getLeftDock().getPaneItems().length).toBe(1)
expect(atom.close).not.toHaveBeenCalled()
atom.workspace.getCenter().activate()
atom.workspace.closeActivePaneItemOrEmptyPaneOrWindow()
expect(atom.close).toHaveBeenCalled()
})
})

View File

@@ -1307,7 +1307,7 @@ module.exports = class Workspace extends Model {
// {::saveActivePaneItemAs} # will be called instead. This method does nothing
// if the active item does not implement a `.save` method.
saveActivePaneItem () {
this.getActivePane().saveActiveItem()
this.getCenter().getActivePane().saveActiveItem()
}
// Prompt the user for a path and save the active pane item to it.
@@ -1316,7 +1316,7 @@ module.exports = class Workspace extends Model {
// `.saveAs` on the item with the selected path. This method does nothing if
// the active item does not implement a `.saveAs` method.
saveActivePaneItemAs () {
this.getActivePane().saveActiveItemAs()
this.getCenter().getActivePane().saveActiveItemAs()
}
// Destroy (close) the active pane item.
@@ -1419,13 +1419,13 @@ module.exports = class Workspace extends Model {
}
}
// Close the active pane item, or the active pane if it is empty,
// or the current window if there is only the empty root pane.
// Close the active center pane item, or the active center pane if it is
// empty, or the current window if there is only the empty root pane.
closeActivePaneItemOrEmptyPaneOrWindow () {
if (this.getActivePaneItem() != null) {
this.destroyActivePaneItem()
if (this.getCenter().getActivePaneItem() != null) {
this.getCenter().getActivePane().destroyActiveItem()
} else if (this.getCenter().getPanes().length > 1) {
this.destroyActivePane()
this.getCenter().destroyActivePane()
} else if (this.config.get('core.closeEmptyWindows')) {
atom.close()
}