editor: fix - remove gutter group when canvas element gets detached
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Wed, 28 May 2014 10:27:00 +0000 (12:27 +0200)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Wed, 28 May 2014 12:45:59 +0000 (14:45 +0200)
src/editor/modules/documentCanvas/canvas/documentElement.js
src/editor/modules/documentCanvas/canvas/gutter.js

index 8a5193b..d40ca9b 100644 (file)
@@ -154,6 +154,9 @@ $.extend(DocumentNodeElement.prototype, {
     detach: function(isChild) {
         var parents;
 
+        if(this.gutterGroup) {
+            this.gutterGroup.remove();
+        }
         if(_.isFunction(this.children)) {
             this.children().forEach(function(child) {
                 child.detach(true);
index b6bd665..472998a 100644 (file)
@@ -42,11 +42,13 @@ var GutterGroupView = function(gutterView, group) {
     
     this.group.on('viewAdded', this.onViewAdded, this);
     this.group.on('focusToggled', this.onFocusToggled, this);
+    this.group.on('removed', this.remove, this);
 };
 $.extend(GutterGroupView.prototype, {
     remove: function() {
         this.group.off('viewAdded', this.onViewAdded);
         this.group.off('focusToggled', this.onFocusToggled);
+        this.group.off('removed', this.removed);
         this.dom.detach();
     },
     onViewAdded: function(view) {
@@ -84,6 +86,9 @@ $.extend(ViewGroup.prototype, Backbone.Events, {
     },
     show: function() {
         this.gutter.show(this);
+    },
+    remove: function() {
+        this.trigger('removed');
     }
 });