about summary refs log tree commit diff stats
path: root/edit.lua
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-07-13 08:38:07 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-07-13 08:40:04 -0700
commit22ad5373c5e4e4c68b4a9f8fcde83caee92237a2 (patch)
tree7635147ee789b900d9aed70948cd076a52e14716 /edit.lua
parent6659de60f365cf31290790a9d84f46c16eb6301b (diff)
downloadtext.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.lua10
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