From 222dc5fb3eac3cbb86cb488158e30a4024c9a9f5 Mon Sep 17 00:00:00 2001 From: Sylvain Corlay Date: Mon, 8 Sep 2014 19:51:34 +0000 Subject: [PATCH 1/3] Destroy backbone model on comm:close --- IPython/html/static/widgets/js/widget.js | 1 + 1 file changed, 1 insertion(+) diff --git a/IPython/html/static/widgets/js/widget.js b/IPython/html/static/widgets/js/widget.js index 8dcda6d38..c0272d0fc 100644 --- a/IPython/html/static/widgets/js/widget.js +++ b/IPython/html/static/widgets/js/widget.js @@ -52,6 +52,7 @@ define(["widgets/js/manager", _handle_comm_closed: function (msg) { // Handle when a widget is closed. this.trigger('comm:close'); + this.comm.model.trigger('destroy', this.comm.model); delete this.comm.model; // Delete ref so GC will collect widget model. delete this.comm; delete this.model_id; // Delete id from model so widget manager cleans up. From 06747c1ada9c0df4434df6cea50560f30bee3f2f Mon Sep 17 00:00:00 2001 From: Sylvain Corlay Date: Mon, 15 Sep 2014 21:32:46 +0000 Subject: [PATCH 2/3] simplification of trigger destroy --- IPython/html/static/widgets/js/widget.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IPython/html/static/widgets/js/widget.js b/IPython/html/static/widgets/js/widget.js index c0272d0fc..991576a84 100644 --- a/IPython/html/static/widgets/js/widget.js +++ b/IPython/html/static/widgets/js/widget.js @@ -52,7 +52,7 @@ define(["widgets/js/manager", _handle_comm_closed: function (msg) { // Handle when a widget is closed. this.trigger('comm:close'); - this.comm.model.trigger('destroy', this.comm.model); + this.trigger('destroy', this); delete this.comm.model; // Delete ref so GC will collect widget model. delete this.comm; delete this.model_id; // Delete id from model so widget manager cleans up. From e809fcb5455ddafee82c8c4d4fca979b22b2bbf9 Mon Sep 17 00:00:00 2001 From: Sylvain Corlay Date: Tue, 16 Sep 2014 14:31:26 +0000 Subject: [PATCH 3/3] stop listening --- IPython/html/static/widgets/js/widget.js | 1 + 1 file changed, 1 insertion(+) diff --git a/IPython/html/static/widgets/js/widget.js b/IPython/html/static/widgets/js/widget.js index 991576a84..751303b45 100644 --- a/IPython/html/static/widgets/js/widget.js +++ b/IPython/html/static/widgets/js/widget.js @@ -52,6 +52,7 @@ define(["widgets/js/manager", _handle_comm_closed: function (msg) { // Handle when a widget is closed. this.trigger('comm:close'); + this.stopListening(); this.trigger('destroy', this); delete this.comm.model; // Delete ref so GC will collect widget model. delete this.comm;