From 1221fde164c47480f3c30209ad5167e4a005769a Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Wed, 17 Aug 2022 16:15:35 -0700 Subject: [PATCH] move caching behavior inside compute_fragments --- text.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/text.lua b/text.lua index fb85d63..c38dc1e 100644 --- a/text.lua +++ b/text.lua @@ -18,9 +18,7 @@ function Text.draw(State, line_index, y, startpos) local x = State.left local pos = 1 local screen_line_starting_pos = startpos - if line_cache.fragments == nil then - Text.compute_fragments(State, line_index) - end + Text.compute_fragments(State, line_index) for _, f in ipairs(line_cache.fragments) do local frag, frag_text = f.data, f.text local frag_len = utf8.len(frag) @@ -90,9 +88,7 @@ function Text.populate_screen_line_starting_pos(State, line_index) return end -- duplicate some logic from Text.draw - if line_cache.fragments == nil then - Text.compute_fragments(State, line_index) - end + Text.compute_fragments(State, line_index) line_cache.screen_line_starting_pos = {1} local x = State.left local pos = 1 @@ -113,7 +109,11 @@ end function Text.compute_fragments(State, line_index) --? print('compute_fragments', line_index, 'between', State.left, State.right) local line = State.lines[line_index] + if line.mode ~= 'text' then return end local line_cache = State.line_cache[line_index] + if line_cache.fragments then + return + end line_cache.fragments = {} local x = State.left -- try to wrap at word boundaries