From fa66048d71d4edcc6f066075f2ee649a220e2e7b Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Thu, 12 Nov 2015 17:34:48 -0700 Subject: [PATCH] Guard against focusing a destroyed pane --- spec/pane-spec.coffee | 6 ++++++ src/pane.coffee | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/spec/pane-spec.coffee b/spec/pane-spec.coffee index 36803bde6..325087263 100644 --- a/spec/pane-spec.coffee +++ b/spec/pane-spec.coffee @@ -751,6 +751,12 @@ describe "Pane", -> pane2.destroy() expect(container.root).toBe pane1 + describe "::focus()", -> + it "doesn't blow up if the pane has been destroyed", -> + pane = new Pane(paneParams()) + pane.destroy() + pane.focus() + describe "serialization", -> pane = null diff --git a/src/pane.coffee b/src/pane.coffee index 412fc5251..06ffd8f49 100644 --- a/src/pane.coffee +++ b/src/pane.coffee @@ -248,7 +248,7 @@ class Pane extends Model # Called by the view layer to indicate that the pane has gained focus. focus: -> @focused = true - @activate() unless @isActive() + @activate() unless @isActive() or @isDestroyed() # Called by the view layer to indicate that the pane has lost focus. blur: ->