mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-29 21:07:24 -06:00
* Fix CJK fallback mixing serif/sans faces within one run Per-character fallback picked the first covering face in load order, so a run without an East Asian font could draw JIS-covered ideographs in a bundled Japanese Mincho and simplified-only ones in the SC sans, mixing serif and sans glyphs even inside one word. Pick one face covering all of the run's East Asian characters when available, keeping the per-character fallback when none does. * Review fixes for #567: cache the run-level CJK fallback - fallback_for_east_asian is cached per (character set, excluded face, bold, italic) and dropped when the loaded faces change or the system fallback is switched, like the per-character cache, so relayout doesn't redo the search; the cache is bounded in entries and in key size. - loaded_fallback and loaded_covering share one fallback_order helper. - Test for the cache. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Brandon Thomas <echelon@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>