diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2022-09-05 11:28:03 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2022-09-05 11:29:39 -0700 |
commit | 528c64d690c2d1cb4b3b70c37008b3ba37d904b9 (patch) | |
tree | 6a05d6d291276b5a3c63475686e02648f3091da6 /source_undo.lua | |
parent | 9f94470f9dd56c03c66d98bbeff2fc60995cc0ae (diff) | |
download | lines.love-528c64d690c2d1cb4b3b70c37008b3ba37d904b9.tar.gz |
support drawings in the source editor
Diffstat (limited to 'source_undo.lua')
-rw-r--r-- | source_undo.lua | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/source_undo.lua b/source_undo.lua index 0aa6755..6023324 100644 --- a/source_undo.lua +++ b/source_undo.lua @@ -50,6 +50,8 @@ function snapshot(State, s,e) screen_top=deepcopy(State.screen_top1), selection=deepcopy(State.selection1), cursor=deepcopy(State.cursor1), + current_drawing_mode=Drawing_mode, + previous_drawing_mode=State.previous_drawing_mode, lines={}, start_line=s, end_line=e, @@ -58,7 +60,19 @@ function snapshot(State, s,e) -- deep copy lines without cached stuff like text fragments for i=s,e do local line = State.lines[i] - table.insert(event.lines, {data=line.data, dataB=line.dataB}) + if line.mode == 'text' then + table.insert(event.lines, {mode='text', data=line.data, dataB=line.dataB}) + elseif line.mode == 'drawing' then + local points=deepcopy(line.points) +--? print('copying', line.points, 'with', #line.points, 'points into', points) + local shapes=deepcopy(line.shapes) +--? print('copying', line.shapes, 'with', #line.shapes, 'shapes into', shapes) + table.insert(event.lines, {mode='drawing', h=line.h, points=points, shapes=shapes, pending={}}) +--? table.insert(event.lines, {mode='drawing', h=line.h, points=deepcopy(line.points), shapes=deepcopy(line.shapes), pending={}}) + else + print(line.mode) + assert(false) + end end return event end |