about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2023-01-01 15:52:55 +0100
committerbptato <nincsnevem662@gmail.com>2023-01-01 15:52:55 +0100
commit9a22a844c956d80f0d5c80330e898d52acadfd2f (patch)
tree2072e22fadbdff1e2fe3756adf19632260f2f1aa
parentea3331690928fd61fa9d0e7457ba017a4fffc363 (diff)
downloadchawan-9a22a844c956d80f0d5c80330e898d52acadfd2f.tar.gz
pager: fix bug with tab on screen shifting
-rw-r--r--src/display/pager.nim5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/display/pager.nim b/src/display/pager.nim
index 057f9238..7e4be928 100644
--- a/src/display/pager.nim
+++ b/src/display/pager.nim
@@ -218,7 +218,8 @@ proc refreshDisplay(pager: Pager, container = pager.container) =
     while i < line.str.len:
       let pw = w
       fastRuneAt(line.str, i, r)
-      w += r.twidth(w)
+      let rw = r.twidth(w)
+      w += rw
       if w > container.fromx + pager.display.width:
         break # die on exceeding the width limit
       if nf.pos != -1 and nf.pos <= pw:
@@ -228,7 +229,7 @@ proc refreshDisplay(pager: Pager, container = pager.container) =
       lan &= r
       if cf.pos != -1:
         pager.display[dls + k].format = cf.format
-      let tk = k + r.twidth(k)
+      let tk = k + rw
       while k < tk and k < pager.display.width - 1:
         inc k
     # Finally, override cell formatting for highlighted cells.