plan.has_gpos_mark = !!plan.map.get_1_mask (HB_TAG ('m','a','r','k'));
if (!plan.apply_gpos && !plan.apply_kerx)
plan.fallback_mark_positioning = true;
+
+ /* Currently we always apply trak. */
+ plan.apply_trak = hb_aat_layout_has_tracking (face);
}
else if (c->plan->apply_kerx)
hb_aat_layout_position (c->plan, c->font, c->buffer);
- hb_aat_layout_track (c->plan, c->font, c->buffer);
+ if (c->plan->apply_trak)
+ hb_aat_layout_track (c->plan, c->font, c->buffer);
if (!c->plan->apply_kerx)
switch (c->plan->shaper->zero_width_marks)
bool fallback_kerning : 1;
bool fallback_mark_positioning : 1;
- bool apply_morx : 1;
+ bool apply_gpos : 1;
bool apply_kerx : 1;
bool apply_kern : 1;
- bool apply_gpos : 1;
+ bool apply_morx : 1;
+ bool apply_trak : 1;
inline void collect_lookups (hb_tag_t table_tag, hb_set_t *lookups) const