mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-20 07:28:08 +03:00
Merge pull request #14136 from atom/mb-ns-dont-auto-open-dock-when-adding-item
Open docks when activating their panes, but not when adding items
This commit is contained in:
commit
c810ac4f5b
15
spec/dock-spec.js
Normal file
15
spec/dock-spec.js
Normal file
@ -0,0 +1,15 @@
|
||||
describe('Dock', () => {
|
||||
describe('when a pane in a dock is activated', () => {
|
||||
it('opens the dock', () => {
|
||||
const item = {
|
||||
getDefaultLocation() { return 'left' }
|
||||
}
|
||||
|
||||
atom.workspace.open(item, {activatePane: false})
|
||||
expect(atom.workspace.getLeftDock().isOpen()).toBe(false)
|
||||
|
||||
atom.workspace.getLeftDock().getPanes()[0].activate()
|
||||
expect(atom.workspace.getLeftDock().isOpen()).toBe(true)
|
||||
})
|
||||
})
|
||||
})
|
@ -150,6 +150,22 @@ describe "PaneContainer", ->
|
||||
pane2.activate()
|
||||
expect(observed).toEqual [pane1.itemAtIndex(0), pane2.itemAtIndex(0)]
|
||||
|
||||
describe "::onDidActivatePane", ->
|
||||
it "invokes observers when a pane is activated (even if it was already active)", ->
|
||||
container = new PaneContainer(params)
|
||||
container.initialize()
|
||||
container.getRoot().splitRight()
|
||||
[pane1, pane2] = container.getPanes()
|
||||
|
||||
activatedPanes = []
|
||||
container.onDidActivatePane (pane) -> activatedPanes.push(pane)
|
||||
|
||||
pane1.activate()
|
||||
pane1.activate()
|
||||
pane2.activate()
|
||||
pane2.activate()
|
||||
expect(activatedPanes).toEqual([pane1, pane1, pane2, pane2])
|
||||
|
||||
describe "::onDidStopChangingActivePaneItem()", ->
|
||||
[container, pane1, pane2, observed] = []
|
||||
|
||||
|
@ -48,9 +48,7 @@ module.exports = class Dock {
|
||||
}
|
||||
|
||||
this.subscriptions = new CompositeDisposable(
|
||||
this.paneContainer.observePanes(pane => {
|
||||
pane.onDidAddItem(this.handleDidAddPaneItem.bind(this))
|
||||
}),
|
||||
this.paneContainer.onDidActivatePane(() => this.activate()),
|
||||
this.paneContainer.observePanes(pane => {
|
||||
pane.onDidRemoveItem(this.handleDidRemovePaneItem.bind(this))
|
||||
})
|
||||
@ -201,11 +199,6 @@ module.exports = class Dock {
|
||||
})
|
||||
}
|
||||
|
||||
handleDidAddPaneItem () {
|
||||
// Show the dock if you drop an item into it.
|
||||
this.setState({open: true})
|
||||
}
|
||||
|
||||
handleDidRemovePaneItem () {
|
||||
// Hide the dock if you remove the last item.
|
||||
if (this.paneContainer.getPaneItems().length === 0) {
|
||||
|
@ -68,6 +68,9 @@ class PaneContainer extends Model
|
||||
onDidChangeActivePane: (fn) ->
|
||||
@emitter.on 'did-change-active-pane', fn
|
||||
|
||||
onDidActivatePane: (fn) ->
|
||||
@emitter.on 'did-activate-pane', fn
|
||||
|
||||
observeActivePane: (fn) ->
|
||||
fn(@getActivePane())
|
||||
@onDidChangeActivePane(fn)
|
||||
@ -127,6 +130,7 @@ class PaneContainer extends Model
|
||||
|
||||
@activePane = activePane
|
||||
@emitter.emit 'did-change-active-pane', @activePane
|
||||
@emitter.emit 'did-activate-pane', @activePane
|
||||
@activePane
|
||||
|
||||
getActivePaneItem: ->
|
||||
|
@ -752,10 +752,6 @@ module.exports = class Workspace extends Model {
|
||||
|
||||
if (options.activatePane !== false) {
|
||||
pane.activate()
|
||||
if (!container) {
|
||||
container = this.getPaneContainers().find(container => container.getPanes().includes(pane))
|
||||
}
|
||||
container.activate()
|
||||
}
|
||||
|
||||
let initialColumn = 0
|
||||
|
Loading…
Reference in New Issue
Block a user