dwrite/arabic: Use resolved codepoint for joining types.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
b91548d059
commit
7d264424ce
|
@ -521,6 +521,7 @@ struct shaping_glyph_info
|
|||
int attach_chain;
|
||||
/* Only relevant for isClusterStart glyphs. Indicates text position for this cluster. */
|
||||
unsigned int start_text_idx;
|
||||
unsigned int codepoint;
|
||||
};
|
||||
|
||||
struct shaping_glyph_properties
|
||||
|
|
|
@ -5949,6 +5949,7 @@ static void opentype_get_nominal_glyphs(struct scriptshaping_context *context, c
|
|||
if (*context->u.subst.digits && codepoint >= '0' && codepoint <= '9')
|
||||
codepoint = context->u.subst.digits[codepoint - '0'];
|
||||
|
||||
context->glyph_infos[g].codepoint = codepoint;
|
||||
context->u.buffer.glyphs[g] = font->get_glyph(context->cache->context, codepoint);
|
||||
context->u.buffer.glyph_props[g].justification = SCRIPT_JUSTIFY_CHARACTER;
|
||||
opentype_set_subst_glyph_props(context, g);
|
||||
|
|
|
@ -147,9 +147,9 @@ static void arabic_setup_masks(struct scriptshaping_context *context,
|
|||
unsigned int i, prev = ~0u, state = 0;
|
||||
unsigned int masks[NUM_FEATURES];
|
||||
|
||||
for (i = 0; i < context->length; ++i)
|
||||
for (i = 0; i < context->glyph_count; ++i)
|
||||
{
|
||||
unsigned short this_type = arabic_get_joining_type(context->text[i]);
|
||||
unsigned short this_type = arabic_get_joining_type(context->glyph_infos[i].codepoint);
|
||||
const struct arabic_state_table_entry *entry;
|
||||
|
||||
if (this_type == JOINING_TYPE_T)
|
||||
|
@ -173,7 +173,7 @@ static void arabic_setup_masks(struct scriptshaping_context *context,
|
|||
masks[i] = shape_get_feature_1_mask(features, arabic_features[i]);
|
||||
|
||||
/* Unaffected glyphs get action NONE with zero mask. */
|
||||
for (i = 0; i < context->length; ++i)
|
||||
for (i = 0; i < context->glyph_count; ++i)
|
||||
context->glyph_infos[i].mask |= masks[arabic_get_shaping_action(context, i)];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue