about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/layout/renderdocument.nim7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/layout/renderdocument.nim b/src/layout/renderdocument.nim
index e62455e4..c6277646 100644
--- a/src/layout/renderdocument.nim
+++ b/src/layout/renderdocument.nim
@@ -101,7 +101,7 @@ proc setText(grid: var FlexibleGrid; linestr: string; x, y: int; format: Format;
     grid[y].str &= ' '.repeat(padwidth)
 
   grid[y].str &= linestr
-  let linestrwidth = linestr.twidth(x)
+  var linestrwidth = linestr.twidth(x)
 
   i = 0
   var nx = x # last x of new string
@@ -109,6 +109,11 @@ proc setText(grid: var FlexibleGrid; linestr: string; x, y: int; format: Format;
     fastRuneAt(ostr, i, r)
     nx += r.twidth(nx)
 
+  while x + linestrwidth < nx:
+    # we ate half of a double width char; pad it out with spaces.
+    grid[y].str &= ' '
+    inc linestrwidth
+
   if i < ostr.len:
     grid[y].str &= ostr.substr(i)