aboutsummaryrefslogtreecommitdiff
path: root/js/helper-classes/3D/snap-manager.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/helper-classes/3D/snap-manager.js')
-rwxr-xr-xjs/helper-classes/3D/snap-manager.js22
1 files changed, 19 insertions, 3 deletions
diff --git a/js/helper-classes/3D/snap-manager.js b/js/helper-classes/3D/snap-manager.js
index 5b467b41..a401c363 100755
--- a/js/helper-classes/3D/snap-manager.js
+++ b/js/helper-classes/3D/snap-manager.js
@@ -123,7 +123,8 @@ var SnapManager = exports.SnapManager = Montage.create(Component, {
123 /////////////////////////////////////////////////////////////////////// 123 ///////////////////////////////////////////////////////////////////////
124 initialize: { 124 initialize: {
125 value: function() { 125 value: function() {
126 this.eventManager.addEventListener("elementDeleted", this, false); 126 this.eventManager.addEventListener("elementsRemoved", this, false);
127 this.eventManager.addEventListener("elementReplaced", this, false);
127 } 128 }
128 }, 129 },
129 130
@@ -163,12 +164,26 @@ var SnapManager = exports.SnapManager = Montage.create(Component, {
163 }, 164 },
164 165
165 166
166 handleElementDeleted: { 167 handleElementsRemoved: {
167 value: function(event) { 168 value: function(event) {
168 this.removeElementFrom2DCache(event.detail); 169 var self = this, elements = event.detail;
170
171 if(Array.isArray(elements)) {
172 elements = Array.prototype.slice.call(elements, 0);
173 elements.forEach(function(element) {
174 self.removeElementFrom2DCache(element);
175 });
176 } else {
177 this.removeElementFrom2DCache(elements);
178 }
169 } 179 }
170 }, 180 },
171 181
182 handleElementReplaced: {
183 value: function(event) {
184 this._isCacheInvalid = true;
185 }
186 },
172 187
173 setCurrentStage: { 188 setCurrentStage: {
174 value: function(stage) { 189 value: function(stage) {
@@ -489,6 +504,7 @@ var SnapManager = exports.SnapManager = Montage.create(Component, {
489 var n = this._elementCache.length; 504 var n = this._elementCache.length;
490 this._elementCache[index] = this._elementCache[n-1]; 505 this._elementCache[index] = this._elementCache[n-1];
491 this._elementCache.pop(); 506 this._elementCache.pop();
507 target.elementModel.isIn2DSnapCache = false;
492 found = true; 508 found = true;
493 } 509 }
494 510