wip: blocking nested transformations from being pushed on undo stack
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 2 Dec 2013 13:22:00 +0000 (14:22 +0100)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Sun, 15 Dec 2013 21:32:46 +0000 (22:32 +0100)
src/smartxml/smartxml.js

index fc9715b..aa9a7c5 100644 (file)
@@ -565,6 +565,7 @@ var Document = function(xml) {
     this.loadXML(xml);
     this.undoStack = [];
     this.redoStack = [];
+    this._transformationLevel = 0;
 };
 
 $.extend(Document.prototype, Backbone.Events, {
@@ -752,8 +753,12 @@ $.extend(Document.prototype, Backbone.Events, {
             }
         } 
         if(transformation) {
+            this._transformationLevel++;
             toret = transformation.run();
-            this.undoStack.push(transformation);
+            if(this._transformationLevel === 1) {
+                this.undoStack.push(transformation);
+            }
+            this._transformationLevel--;
             console.log('clearing redo stack');
             this.redoStack = [];
             return toret;