diff options
Diffstat (limited to 'js/clipboard.js')
| -rw-r--r-- | js/clipboard.js | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/js/clipboard.js b/js/clipboard.js index ee79320..0ac2150 100644 --- a/js/clipboard.js +++ b/js/clipboard.js @@ -81,6 +81,7 @@ var clipboard = (function () { var rapper = document.createElement("div") rapper.innerHTML = import_textarea.value var y = 0; + undo.new() toArray(rapper.childNodes).forEach(function(span){ if (span.nodeName !== "SPAN") { return } var x = 0; @@ -106,6 +107,7 @@ var clipboard = (function () { for (var i = 0; i < line.length; i++, x++) { var lex = row[x] + undo.save_lex(x, y, lex) if (! lex) return lex.char = line[i] lex.fg = alphabet[ colorcode[1] ] @@ -141,9 +143,12 @@ var clipboard = (function () { var json = colorcode.to_json(data, {fg:0, bg:1}) - canvas_width_el.innerHTML = json.w - canvas_height_el.innerHTML = json.h - canvas.resize(json.w, json.h) + undo.new() + undo.save_rect(0,0, canvas.w, canvas.h) + if (json.w !== canvas.w || json.h !== canvas.h){ + undo.save_size(canvas.w, canvas.h) + canvas.resize(json.w, json.h, true) + } canvas.clear() for (var y = 0, line; line = json.lines[y]; y++){ @@ -165,12 +170,14 @@ var clipboard = (function () { var lines = data.split("\n") var width = lines.reduce(function(a,b){ console.log(a,b); return Math.max(a, b.length) }, 0) var height = lines.length - if (width > 200) { + if (width > canvas.max) { return alert("input too wide") } - if (height > 200) { + if (height > canvas.max) { return alert("input too tall") } + undo.new() + undo.save_rect(0,0, canvas.w, canvas.h) canvas.clear() lines.forEach(function(line, y){ var row = canvas.aa[y] |
