From b4109715df5f1488b0f7e42c43dccec7d1e69630 Mon Sep 17 00:00:00 2001 From: liuxiong332 Date: Sun, 21 Jun 2015 11:45:38 +0800 Subject: [PATCH 1/6] add command enlarge and shrink --- src/pane-element.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pane-element.coffee b/src/pane-element.coffee index f065c695d..e4c598d03 100644 --- a/src/pane-element.coffee +++ b/src/pane-element.coffee @@ -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:enlarge': -> @getModel().setFlexScale(@getModel().getFlexScale() * 1.1) + 'pane:shrink': -> @getModel().setFlexScale(@getModel().getFlexScale() / 1.1) module.exports = PaneElement = document.registerElement 'atom-pane', prototype: PaneElement.prototype From ccccc9657c7f9f6ecfb161da6a850b770348391d Mon Sep 17 00:00:00 2001 From: liuxiong332 Date: Sun, 21 Jun 2015 13:07:30 +0800 Subject: [PATCH 2/6] add keymaps for `pane:shrink` and `pane:enlarge` commands. --- keymaps/darwin.cson | 4 ++++ keymaps/linux.cson | 4 ++++ keymaps/win32.cson | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/keymaps/darwin.cson b/keymaps/darwin.cson index f19e46e90..122105a91 100644 --- a/keymaps/darwin.cson +++ b/keymaps/darwin.cson @@ -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:enlarge' + 'cmd-alt--': 'pane:shrink' + # allow standard input fields to work correctly 'body .native-key-bindings': 'cmd-z': 'native!' diff --git a/keymaps/linux.cson b/keymaps/linux.cson index c860bcac6..8b966093f 100644 --- a/keymaps/linux.cson +++ b/keymaps/linux.cson @@ -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:enlarge' + 'ctrl-alt--': 'pane:shrink' + # allow standard input fields to work correctly 'body .native-key-bindings': 'ctrl-z': 'native!' diff --git a/keymaps/win32.cson b/keymaps/win32.cson index d439f44cc..6b5341d21 100644 --- a/keymaps/win32.cson +++ b/keymaps/win32.cson @@ -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:enlarge' + 'ctrl-alt--': 'pane:shrink' + # allow standard input fields to work correctly 'body .native-key-bindings': 'ctrl-z': 'native!' From 388d71602841ca4f44556542210a635b879e8fef Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 12 Aug 2015 17:31:23 -0700 Subject: [PATCH 3/6] pane:enlarge/shrink -> pane:increase-size/decrease-size --- keymaps/darwin.cson | 4 ++-- src/pane-element.coffee | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keymaps/darwin.cson b/keymaps/darwin.cson index 122105a91..87c1eb9da 100644 --- a/keymaps/darwin.cson +++ b/keymaps/darwin.cson @@ -182,8 +182,8 @@ 'cmd-k cmd-9': 'editor:fold-at-indent-level-9' 'atom-workspace atom-pane': - 'cmd-alt-=': 'pane:enlarge' - 'cmd-alt--': 'pane:shrink' + 'cmd-alt-=': 'pane:increase-size' + 'cmd-alt--': 'pane:decrease-size' # allow standard input fields to work correctly 'body .native-key-bindings': diff --git a/src/pane-element.coffee b/src/pane-element.coffee index e4c598d03..beb64aaab 100644 --- a/src/pane-element.coffee +++ b/src/pane-element.coffee @@ -158,7 +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:enlarge': -> @getModel().setFlexScale(@getModel().getFlexScale() * 1.1) - 'pane:shrink': -> @getModel().setFlexScale(@getModel().getFlexScale() / 1.1) + 'pane:increase-size': -> @getModel().setFlexScale(@getModel().getFlexScale() * 1.1) + 'pane:decrease-size': -> @getModel().setFlexScale(@getModel().getFlexScale() / 1.1) module.exports = PaneElement = document.registerElement 'atom-pane', prototype: PaneElement.prototype From 83b99ef962854d308aaae6a11fa0b052c9fed3c6 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 12 Aug 2015 17:36:39 -0700 Subject: [PATCH 4/6] Move size adjusting to model --- src/pane-element.coffee | 4 ++-- src/pane.coffee | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/pane-element.coffee b/src/pane-element.coffee index beb64aaab..0d53269fd 100644 --- a/src/pane-element.coffee +++ b/src/pane-element.coffee @@ -158,7 +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().setFlexScale(@getModel().getFlexScale() * 1.1) - 'pane:decrease-size': -> @getModel().setFlexScale(@getModel().getFlexScale() / 1.1) + 'pane:increase-size': -> @getModel().increaseSize() + 'pane:decrease-size': -> @getModel().decreaseSize() module.exports = PaneElement = document.registerElement 'atom-pane', prototype: PaneElement.prototype diff --git a/src/pane.coffee b/src/pane.coffee index ecd1279b4..4b13fca14 100644 --- a/src/pane.coffee +++ b/src/pane.coffee @@ -73,6 +73,11 @@ class Pane extends Model @flexScale getFlexScale: -> @flexScale + + increaseSize: -> @setFlexScale(@getFlexScale() * 1.1) + + decreaseSize: -> @setFlexScale(@getFlexScale() / 1.1) + ### Section: Event Subscription ### From 5da44711dc8f7c652e029adbad9fef82fc9deab9 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 12 Aug 2015 17:52:45 -0700 Subject: [PATCH 5/6] Add initial spec for pane resize commands --- spec/pane-container-element-spec.coffee | 34 +++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/spec/pane-container-element-spec.coffee b/spec/pane-container-element-spec.coffee index 8947a6d31..c4ce8da7e 100644 --- a/spec/pane-container-element-spec.coffee +++ b/spec/pane-container-element-spec.coffee @@ -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 From 83082485784d1bfa75d4c87a1f67e80321aace83 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 13 Aug 2015 06:48:10 -0700 Subject: [PATCH 6/6] Update keymaps for changed pane command names --- keymaps/linux.cson | 6 +++--- keymaps/win32.cson | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/keymaps/linux.cson b/keymaps/linux.cson index 8b966093f..9e739521c 100644 --- a/keymaps/linux.cson +++ b/keymaps/linux.cson @@ -144,9 +144,9 @@ 'ctrl-k ctrl-9': 'editor:fold-at-indent-level-9' 'atom-workspace atom-pane': - 'ctrl-alt-=': 'pane:enlarge' - 'ctrl-alt--': 'pane:shrink' - + 'ctrl-alt-=': 'pane:increase-size' + 'ctrl-alt--': 'pane:decrease-size' + # allow standard input fields to work correctly 'body .native-key-bindings': 'ctrl-z': 'native!' diff --git a/keymaps/win32.cson b/keymaps/win32.cson index 6b5341d21..b3643207f 100644 --- a/keymaps/win32.cson +++ b/keymaps/win32.cson @@ -148,8 +148,8 @@ 'ctrl-k ctrl-9': 'editor:fold-at-indent-level-9' 'atom-workspace atom-pane': - 'ctrl-alt-=': 'pane:enlarge' - 'ctrl-alt--': 'pane:shrink' + 'ctrl-alt-=': 'pane:increase-size' + 'ctrl-alt--': 'pane:decrease-size' # allow standard input fields to work correctly 'body .native-key-bindings':