mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-26 19:07:06 -06:00
PSD type stores a line break inside a paragraph (Shift+Return) as U+0003, and the layer text keeps it as is. The layout passed it to the line breaker as an ordinary character: it isn't a break opportunity there, so the line ran on, and the font has no glyph for it, so a missing-glyph box was drawn in its place. Nothing showed until the text was re-laid out, because an opened layer draws its saved pixels; any edit of the text, an Image Size or an export at another scale then turned a two-line headline into one long line with a box in the middle. The layout now hands U+0003 to the line breaker as a newline (same byte length, so every text offset stays put): the line ends, the next one starts with the paragraph's leading and no paragraph spacing, and no glyph is drawn. The text itself is unchanged, so PSD save writes it back. Test: forced_line_break_starts_a_line_in_the_same_paragraph (fails before: one line), covering point, centred and box text and rendering at 8, 16 and 32 bits. Co-authored-by: EthanSuquet <292885762+EthanSuquet@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>