The behaviour of
TextLayout::createLayout is different across platforms. On macOS and Linux the text is rendered to the end of the bounding rect while on Windows overflowing text is silently truncated. See the attached screenshot.
This is with word wrap set to
AttributedString::WordWrap::none. In my opinion the first behaviour is right while the second isn’t. We would like to exploit the overflow behaviour to add an ellipsis character to indicate truncation.
Q: Why not use
- Because we are in a painstaking transition of supporting mixed scripts and font fallbacks. The combination of
TextLayoutseems to be the only viable option in JUCE for the moment.
- Also we need to know if a text has been truncated so we can show a tooltip containing the whole text. (I should probably issue a separate feature request post for better international script support.)
Q: Why not overshoot
This will potentially cause trouble when the text isn’t left-aligned anymore.
As a side question: Is it possible to determine if a
TextLayout::Run is rendered RTL or LTR?