Disable mark advance zeroing as well as mark fallback positioning if doing kerx

This commit is contained in:
Behdad Esfahbod 2018-10-10 21:29:46 -04:00
parent 8496753796
commit 504cb68fc9
1 changed files with 24 additions and 22 deletions

View File

@ -114,7 +114,7 @@ hb_ot_shape_planner_t::compile (hb_ot_shape_plan_t &plan,
}
plan.has_gpos_mark = !!plan.map.get_1_mask (HB_TAG ('m','a','r','k'));
if (!plan.apply_gpos)
if (!plan.apply_gpos && !plan.apply_kerx)
plan.fallback_mark_positioning = true;
}
@ -820,6 +820,7 @@ hb_ot_position_complex (const hb_ot_shape_context_t *c)
hb_ot_layout_position_start (c->font, c->buffer);
if (!c->plan->apply_kerx)
switch (c->plan->shaper->zero_width_marks)
{
case HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_EARLY:
@ -833,10 +834,11 @@ hb_ot_position_complex (const hb_ot_shape_context_t *c)
}
if (c->plan->apply_gpos)
c->plan->position (c->font, c->buffer);
;//c->plan->position (c->font, c->buffer);
else if (c->plan->apply_kerx)
hb_aat_layout_position (c->plan, c->font, c->buffer);
if (!c->plan->apply_kerx)
switch (c->plan->shaper->zero_width_marks)
{
case HB_OT_SHAPE_ZERO_WIDTH_MARKS_BY_GDEF_LATE: