Commit Graph

3 Commits

Author SHA1 Message Date
Nicolas Guillot
43c69240bd Fix word breaking: prevent splitting words with accented characters
Fixed line breaking that would split words like "équivaut" into "é" on one
  line and "quivaut" on the next line, even though they're part of the same word.

  Root cause analysis (from debug logging):
  When text contains accented characters in decomposed form (e + combining
  accent), the system processes them as separate atoms:
    1. "é" is processed as an accent atom, composed, and added to currentLine
    2. "quivaut " is processed as the next ordinary atom
    3. Before adding "quivaut ", checkAndPerformInteratomLineBreak() is called
    4. This function sees that adding "quivaut " would exceed maxWidth
    5. It breaks and flushes the line with "é" at the end
    6. "quivaut " starts on a new line

  Result: "é" appears alone at the end of one line, "quivaut " on the next.

  The fix:
  Modified checkAndPerformInteratomLineBreak() in MTTypesetter.swift to detect
  when we're about to break in the middle of a word.
2025-11-17 10:45:32 +01:00
Nicolas Guillot
ca0e514505 [multi line display] Fix line wrapping to respect width constraints and prevent text truncation 2025-10-27 13:33:29 +01:00
Nicolas Guillot
c7198ad9af [UI] add line wrapping functionality 2025-10-02 16:42:31 +02:00