mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
bug 799869 - [harfbuzz] improve heuristic for choosing between shapers for khmer fonts. r=behdad
This commit is contained in:
parent
2c32c78812
commit
7fc1cd6f00
@ -283,16 +283,22 @@ hb_ot_shape_complex_categorize (const hb_ot_shape_planner_t *planner)
|
||||
else
|
||||
return &_hb_ot_complex_shaper_default;
|
||||
|
||||
|
||||
case HB_SCRIPT_KHMER:
|
||||
/* If the font has 'liga', let the generic shaper do it. */
|
||||
if (!planner->map.found_script[0] ||
|
||||
/* A number of Khmer fonts in the wild don't have a 'pref' feature,
|
||||
* and as such won't shape properly via the Indic shaper;
|
||||
* however, they typically have 'liga' / 'clig' features that implement
|
||||
* the necessary "reordering" by means of ligature substitutions.
|
||||
* So we send such pref-less fonts through the generic shaper instead;
|
||||
* use Indic only if the 'khmr' script has the 'pref' feature. */
|
||||
if (planner->map.found_script[0] &&
|
||||
hb_ot_layout_language_find_feature (planner->face, HB_OT_TAG_GSUB,
|
||||
planner->map.script_index[0],
|
||||
planner->map.language_index[0],
|
||||
HB_TAG ('l','i','g','a'), NULL))
|
||||
return &_hb_ot_complex_shaper_default;
|
||||
else
|
||||
HB_TAG ('p','r','e','f'), NULL))
|
||||
return &_hb_ot_complex_shaper_indic;
|
||||
else
|
||||
return &_hb_ot_complex_shaper_default;
|
||||
|
||||
|
||||
case HB_SCRIPT_MYANMAR:
|
||||
|
Loading…
Reference in New Issue
Block a user