Merge pull request #8357 from atom/ks-pane-resize-command

Add pane increase/decrease size commands
This commit is contained in:
Kevin Sawicki
2015-08-13 07:23:27 -07:00
6 changed files with 53 additions and 0 deletions

View File

@@ -181,6 +181,10 @@
'cmd-k cmd-8': 'editor:fold-at-indent-level-8'
'cmd-k cmd-9': 'editor:fold-at-indent-level-9'
'atom-workspace atom-pane':
'cmd-alt-=': 'pane:increase-size'
'cmd-alt--': 'pane:decrease-size'
# allow standard input fields to work correctly
'body .native-key-bindings':
'cmd-z': 'native!'

View File

@@ -143,6 +143,10 @@
'ctrl-k ctrl-8': 'editor:fold-at-indent-level-8'
'ctrl-k ctrl-9': 'editor:fold-at-indent-level-9'
'atom-workspace atom-pane':
'ctrl-alt-=': 'pane:increase-size'
'ctrl-alt--': 'pane:decrease-size'
# allow standard input fields to work correctly
'body .native-key-bindings':
'ctrl-z': 'native!'

View File

@@ -147,6 +147,10 @@
'ctrl-k ctrl-8': 'editor:fold-at-indent-level-8'
'ctrl-k ctrl-9': 'editor:fold-at-indent-level-9'
'atom-workspace atom-pane':
'ctrl-alt-=': 'pane:increase-size'
'ctrl-alt--': 'pane:decrease-size'
# allow standard input fields to work correctly
'body .native-key-bindings':
'ctrl-z': 'native!'

View File

@@ -160,3 +160,37 @@ describe "PaneContainerElement", ->
element = getResizeElement(0)
element.remove()
expect(-> element.resizeToFitContent()).not.toThrow()
describe "pane resizing", ->
[leftPane, rightPane] = []
beforeEach ->
container = new PaneContainer
leftPane = container.getActivePane()
rightPane = leftPane.splitRight()
describe "when pane:increase-size is triggered", ->
it "increases the size of the pane", ->
expect(leftPane.getFlexScale()).toBe 1
expect(rightPane.getFlexScale()).toBe 1
atom.commands.dispatch(atom.views.getView(leftPane), 'pane:increase-size')
expect(leftPane.getFlexScale()).toBe 1.1
expect(rightPane.getFlexScale()).toBe 1
atom.commands.dispatch(atom.views.getView(rightPane), 'pane:increase-size')
expect(leftPane.getFlexScale()).toBe 1.1
expect(rightPane.getFlexScale()).toBe 1.1
describe "when pane:decrease-size is triggered", ->
it "decreases the size of the pane", ->
expect(leftPane.getFlexScale()).toBe 1
expect(rightPane.getFlexScale()).toBe 1
atom.commands.dispatch(atom.views.getView(leftPane), 'pane:decrease-size')
expect(leftPane.getFlexScale()).toBe 1/1.1
expect(rightPane.getFlexScale()).toBe 1
atom.commands.dispatch(atom.views.getView(rightPane), 'pane:decrease-size')
expect(leftPane.getFlexScale()).toBe 1/1.1
expect(rightPane.getFlexScale()).toBe 1/1.1

View File

@@ -158,5 +158,7 @@ atom.commands.add 'atom-pane',
'pane:split-down': -> @getModel().splitDown(copyActiveItem: true)
'pane:close': -> @getModel().close()
'pane:close-other-items': -> @getModel().destroyInactiveItems()
'pane:increase-size': -> @getModel().increaseSize()
'pane:decrease-size': -> @getModel().decreaseSize()
module.exports = PaneElement = document.registerElement 'atom-pane', prototype: PaneElement.prototype

View File

@@ -73,6 +73,11 @@ class Pane extends Model
@flexScale
getFlexScale: -> @flexScale
increaseSize: -> @setFlexScale(@getFlexScale() * 1.1)
decreaseSize: -> @setFlexScale(@getFlexScale() / 1.1)
###
Section: Event Subscription
###