diff options
author | Jonathan Clark <[email protected]> | 2025-08-12 15:43:34 -0600 |
---|---|---|
committer | Eskil Abrahamsen Blomfeldt <[email protected]> | 2025-08-20 06:51:01 +0200 |
commit | 184ec7cad2829d5a46b6f52ff6d5e151bdd62b80 (patch) | |
tree | 483c58a3160279cf450535e10fb49e2c88a1395a /src/testlib/qtest_widgets.h | |
parent | 051f116818a1be09f4f0298efb9113348431b119 (diff) |
Previously, when laying out text using harfbuzz-ng, QTextEngine would
only populate the HarfBuzz buffer with the substring associated with a
single item at a time - in effect, semantically breaking the string at
format boundaries. While this approach doesn't have obvious effects for
some languages, it can make text illegible in languages that have
different character forms depending on word position (such as Arabic).
This change updates QTextEngine to instead pass the full string to
HarfBuzz. By doing so, HarfBuzz can inspect the contents of the string
around the current item, and substitute the correct characters at the
item boundaries.
Note that this change isn't a complete fix for QTBUG-54350. In
particular, ligatures will not form across item boundaries, which may
cause incorrect text rendering in some situations. However, this fix
should address some of the more painful cases, such as label mnemonics
breaking Arabic text rendering.
[ChangeLog][Text] Improved text shaping with mnemonics
in certain languages, such as Arabic.
Pick-to: 6.10
Fixes: QTBUG-93371
Change-Id: I3639e50b809269836cd5480609d22328f9deaf82
Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
Diffstat (limited to 'src/testlib/qtest_widgets.h')
0 files changed, 0 insertions, 0 deletions