mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-29 16:28:11 +00:00
fix: transliterate message text in FullscreenMsgView before wrapping
Raw UTF-8 message body was passed directly to display.print(), rendering Polish and other accented chars as garbage on the Adafruit font. Transliterating before wrapLines also fixes byte-count wrapping for multi-byte UTF-8 characters. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -51,8 +51,10 @@ struct FullscreenMsgView {
|
|||||||
display.drawTextEllipsized(2, 1, display.width() - 4, sender);
|
display.drawTextEllipsized(2, 1, display.width() - 4, sender);
|
||||||
display.setColor(DisplayDriver::LIGHT);
|
display.setColor(DisplayDriver::LIGHT);
|
||||||
|
|
||||||
|
char trans_text[512];
|
||||||
|
display.translateUTF8ToBlocks(trans_text, text, sizeof(trans_text));
|
||||||
char lines[12][FS_CHARS_MAX];
|
char lines[12][FS_CHARS_MAX];
|
||||||
int lcount = wrapLines(text, chars, lines, 12);
|
int lcount = wrapLines(trans_text, chars, lines, 12);
|
||||||
int max_scroll = lcount > visible ? lcount - visible : 0;
|
int max_scroll = lcount > visible ? lcount - visible : 0;
|
||||||
if (scroll > max_scroll) scroll = max_scroll;
|
if (scroll > max_scroll) scroll = max_scroll;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user