about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2024-08-23 16:19:15 +0200
committerbptato <nincsnevem662@gmail.com>2024-08-23 16:19:15 +0200
commit8db0a94ca4287c4f2e1361b056994e0ec206712d (patch)
tree7d1d35e92bc5a15e51dfef539c7440341678881f /src
parent80b060be33ce7eea7a4bab18dbfe652cf6d36c0b (diff)
downloadchawan-8db0a94ca4287c4f2e1361b056994e0ec206712d.tar.gz
layout: fix whitespace weirdness
avoid adding whitespace to the previous atom if it's not on the current
line
Diffstat (limited to 'src')
-rw-r--r--src/layout/engine.nim4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/layout/engine.nim b/src/layout/engine.nim
index 30895b22..7328839a 100644
--- a/src/layout/engine.nim
+++ b/src/layout/engine.nim
@@ -526,7 +526,9 @@ proc putAtom(state: var LineBoxState; atom: InlineAtom;
 proc addSpacing(ictx: var InlineContext; width: LayoutUnit; state: InlineState;
     hang = false) =
   let fragment = ictx.whitespaceFragment
-  if fragment.state.atoms.len == 0 or fragment.state.atoms[^1].t != iatWord:
+  if fragment.state.atoms.len == 0 or ictx.lbstate.atoms.len == 0 or
+      (let oatom = fragment.state.atoms[^1];
+        oatom.t != iatWord or oatom != ictx.lbstate.atoms[^1]):
     let atom = InlineAtom(
       t: iatWord,
       size: size(w = 0, h = ictx.cellHeight),