mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-09-14 15:16:40 +00:00
Selecting a variant from the Hold-Enter accent popup (e.g. 'o' -> 'o with acute') correctly stored the real UTF-8 character in the text buffer, but the live-typing preview line rendered it as the plain base letter -- the accent was invisible even though the data was right. Root cause: DisplayDriver::translateUTF8ToBlocks() transliterates extended Latin characters down to ASCII for display drivers whose font can't render them; real boards with the pixel-perfect MiscFixedFont override it to a plain passthrough once _single_font is set (SH1106Display.cpp etc). SimDisplayDriverCanvas reuses that same MiscFixedFont/MiscFixedRenderer (confirmed the popup's own preview renders diacritics correctly, since it prints its own variants directly rather than through this path) but never added the matching override, so every string routed through translateUTF8ToBlocks() -- not just the keyboard preview -- silently lost its diacritics. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>