usp10: In Arabic only fallback to presentation form B for isolated glyphs.
This commit is contained in:
parent
f869a16186
commit
ed15053837
|
@ -1567,13 +1567,16 @@ static void ContextualShape_Arabic(HDC hdc, ScriptCache *psc, SCRIPT_ANALYSIS *p
|
||||||
|
|
||||||
if (!shaped)
|
if (!shaped)
|
||||||
{
|
{
|
||||||
WORD newGlyph = pwOutGlyphs[i];
|
if (context_shape[i] == Xn)
|
||||||
if (pwcChars[i] >= FIRST_ARABIC_CHAR && pwcChars[i] <= LAST_ARABIC_CHAR)
|
|
||||||
{
|
{
|
||||||
/* fall back to presentation form B */
|
WORD newGlyph = pwOutGlyphs[i];
|
||||||
WCHAR context_char = wine_shaping_forms[pwcChars[i] - FIRST_ARABIC_CHAR][context_shape[i]];
|
if (pwcChars[i] >= FIRST_ARABIC_CHAR && pwcChars[i] <= LAST_ARABIC_CHAR)
|
||||||
if (context_char != pwcChars[i] && GetGlyphIndicesW(hdc, &context_char, 1, &newGlyph, 0) != GDI_ERROR && newGlyph != 0x0000)
|
{
|
||||||
pwOutGlyphs[i] = newGlyph;
|
/* fall back to presentation form B */
|
||||||
|
WCHAR context_char = wine_shaping_forms[pwcChars[i] - FIRST_ARABIC_CHAR][context_shape[i]];
|
||||||
|
if (context_char != pwcChars[i] && GetGlyphIndicesW(hdc, &context_char, 1, &newGlyph, 0) != GDI_ERROR && newGlyph != 0x0000)
|
||||||
|
pwOutGlyphs[i] = newGlyph;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue