From 9aefafb8318928e28563f2ba652f631628a89310 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Thu, 9 Jan 2014 18:58:01 -0700 Subject: [PATCH] Use PaneContainerModel::$activePaneItem for 'active-item-changed' events Yay behaviors --- package.json | 2 +- src/pane-container-model.coffee | 3 +++ src/pane-container.coffee | 19 ++++--------------- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 90da3ba15..f440ad28a 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "temp": "0.5.0", "text-buffer": "0.12.0", "underscore-plus": "0.6.1", - "theorist": "~0.10.0", + "theorist": "~0.11.0", "delegato": "~0.4.0", "mixto": "~0.4.0" }, diff --git a/src/pane-container-model.coffee b/src/pane-container-model.coffee index 70834cc7e..fc6154057 100644 --- a/src/pane-container-model.coffee +++ b/src/pane-container-model.coffee @@ -14,6 +14,9 @@ class PaneContainerModel extends Model focusContext: null activePane: null + @behavior 'activePaneItem', -> + @$activePane.flatMapLatest (activePane) -> activePane?.$activeItem + constructor: -> super diff --git a/src/pane-container.coffee b/src/pane-container.coffee index 102281b8c..0ce46ed38 100644 --- a/src/pane-container.coffee +++ b/src/pane-container.coffee @@ -26,27 +26,13 @@ class PaneContainer extends View @model = new PaneContainerModel({root: params?.root?.model}) @subscribe @model.$root, 'value', @onRootChanged + @subscribe @model.$activePaneItem.changes, 'value', @onActivePaneItemChanged @subscribe @model, 'surrendered-focus', @onSurrenderedFocus - @subscribe this, 'pane:attached', (event, pane) => - @triggerActiveItemChange() if @getActivePane() is pane - - @subscribe this, 'pane:removed', (event, pane) => - @triggerActiveItemChange() unless @getActivePane()? - - @subscribe this, 'pane:became-active', => - @triggerActiveItemChange() - - @subscribe this, 'pane:active-item-changed', (event, item) => - @triggerActiveItemChange() if @getActivePaneItem() is item - viewForModel: (model) -> viewClass = model.getViewClass() model._view ?= new viewClass(model) - triggerActiveItemChange: -> - @trigger 'pane-container:active-pane-item-changed', [@getActivePaneItem()] - serializeParams: -> model: @model.serialize() @@ -68,6 +54,9 @@ class PaneContainer extends View @append(view) view.makeActive?() + onActivePaneItemChanged: (activeItem) => + @trigger 'pane-container:active-pane-item-changed', [activeItem] + onSurrenderedFocus: => atom?.workspaceView?.focus()