summaryrefslogtreecommitdiff
path: root/js/undo.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/undo.js')
-rw-r--r--js/undo.js34
1 files changed, 17 insertions, 17 deletions
diff --git a/js/undo.js b/js/undo.js
index 44b137a..35a27d9 100644
--- a/js/undo.js
+++ b/js/undo.js
@@ -34,10 +34,10 @@ var update_dom = function(){
}
// state is an undo or redo state that might contain these props
-// {lexs: {'0,0': LexState, ...},
-// focus: {x:, y: },
-// size: {w:, h: },
-// rects: [{x:, y:, w:, h:, lexs: [LexState, ...]}, ...]
+// { lexs: {'0,0': LexState, ...}, // for sparse lex changes (eg brush, fill)
+// focus: {x:, y: },
+// size: {w:, h: },
+// rects: [{x:, y:, w:, h:, lexs: [LexState, ...]}, ...]
// }
var new_state = function(){
var state = {lexs:{}};
@@ -132,24 +132,24 @@ var restore_state = function(state){
if (make_redo){
state.redo = new_redo()
- }
- // copy saved rects that intersect with current canvas size
- // important to do this before resizing canvas
- if (make_redo && 'rects' in state){
- for (var ri=0, rect; rect=state.rects[ri]; ri++){
- if (rect.x >= canvas.w ||
- rect.y >= canvas.h) continue;
- var w = Math.min(rect.w, canvas.w - rect.x)
- var h = Math.min(rect.h, canvas.h - rect.y)
- save_rect(rect.x, rect.y, w, h, state.redo)
+ // copy saved rects that intersect with current canvas size
+ // important to do this before resizing canvas
+ if ('rects' in state){
+ for (var ri=0, rect; rect=state.rects[ri]; ri++){
+ if (rect.x >= canvas.w ||
+ rect.y >= canvas.h) continue;
+ var w = Math.min(rect.w, canvas.w - rect.x)
+ var h = Math.min(rect.h, canvas.h - rect.y)
+ save_rect(rect.x, rect.y, w, h, state.redo)
+ }
+ }
+ if ('size' in state){
+ save_resize(state.size.w, state.size.h, canvas.w, canvas.h, state.redo)
}
}
if ('size' in state){
- if (make_redo){
- save_resize(state.size.w, state.size.h, canvas.w, canvas.h, state.redo)
- }
canvas.resize(state.size.w, state.size.h, true);
}