summaryrefslogtreecommitdiff
path: root/js/clipboard.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/clipboard.js')
-rw-r--r--js/clipboard.js17
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]