diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2022-07-13 08:38:07 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2022-07-13 08:40:04 -0700 |
commit | 22ad5373c5e4e4c68b4a9f8fcde83caee92237a2 (patch) | |
tree | 7635147ee789b900d9aed70948cd076a52e14716 /edit.lua | |
parent | 6659de60f365cf31290790a9d84f46c16eb6301b (diff) | |
download | text.love-22ad5373c5e4e4c68b4a9f8fcde83caee92237a2.tar.gz |
a bug I've never run into
The previous commit was failing inside a test that I can't reproduce manually. Perhaps it's something about how often draw/update run in practice. Anyways, it's definitely uncovered a real issue.
Diffstat (limited to 'edit.lua')
-rw-r--r-- | edit.lua | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/edit.lua b/edit.lua index 0958817..1929c52 100644 --- a/edit.lua +++ b/edit.lua @@ -352,7 +352,10 @@ function edit.keychord_pressed(State, chord, key) State.cursor1 = deepcopy(src.cursor) State.selection1 = deepcopy(src.selection) patch(State.lines, event.after, event.before) - Text.redraw_all(State) -- if we're scrolling, reclaim all fragments to avoid memory leaks + -- invalidate various cached bits of lines + State.lines.current_drawing = nil + -- if we're scrolling, reclaim all fragments to avoid memory leaks + Text.redraw_all(State) schedule_save(State) end elseif chord == 'C-y' then @@ -364,7 +367,10 @@ function edit.keychord_pressed(State, chord, key) State.cursor1 = deepcopy(src.cursor) State.selection1 = deepcopy(src.selection) patch(State.lines, event.before, event.after) - Text.redraw_all(State) -- if we're scrolling, reclaim all fragments to avoid memory leaks + -- invalidate various cached bits of lines + State.lines.current_drawing = nil + -- if we're scrolling, reclaim all fragments to avoid memory leaks + Text.redraw_all(State) schedule_save(State) end -- clipboard |