[OT] Implement fallback mark positioning for "double" combining marks

This commit is contained in:
Behdad Esfahbod 2012-08-10 16:38:44 -04:00
parent d345313104
commit daf13afb08

View file

@ -162,7 +162,14 @@ position_mark (const hb_ot_shape_plan_t *plan,
{
case HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW:
case HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE:
/* TODO Do something... For now, fall through. */
if (buffer->props.direction == HB_DIRECTION_LTR) {
pos.x_offset += base_extents.x_bearing - mark_extents.width / 2 - mark_extents.x_bearing;
break;
} else if (buffer->props.direction == HB_DIRECTION_RTL) {
pos.x_offset += base_extents.x_bearing + base_extents.width - mark_extents.width / 2 - mark_extents.x_bearing;
break;
}
/* Fall through */
case HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW:
case HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE: