usp10: Properly determine the glyph run direction when shaping Script_Arabic.
In particular, if fLogicalOrder and fRTL are both set, the glyph order is swapped compared to the character order. In all other cases it's the same. Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Aric Stewart <aric@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
c94a5fd28c
commit
f13dea5684
|
@ -1055,16 +1055,16 @@ static void ContextualShape_Arabic(HDC hdc, ScriptCache *psc, SCRIPT_ANALYSIS *p
|
|||
return;
|
||||
}
|
||||
|
||||
if (!psa->fLogicalOrder && psa->fRTL)
|
||||
{
|
||||
dirR = 1;
|
||||
dirL = -1;
|
||||
}
|
||||
else
|
||||
if (psa->fLogicalOrder && psa->fRTL)
|
||||
{
|
||||
dirR = -1;
|
||||
dirL = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
dirR = 1;
|
||||
dirL = -1;
|
||||
}
|
||||
|
||||
load_ot_tables(hdc, psc);
|
||||
|
||||
|
@ -2946,20 +2946,20 @@ static void ShapeCharGlyphProp_Arabic( HDC hdc, ScriptCache *psc, SCRIPT_ANALYSI
|
|||
spaces = HeapAlloc(GetProcessHeap(),0,cGlyphs);
|
||||
memset(spaces,0,cGlyphs);
|
||||
|
||||
if (!psa->fLogicalOrder && psa->fRTL)
|
||||
{
|
||||
initGlyph = cGlyphs-1;
|
||||
finaGlyph = 0;
|
||||
dirR = 1;
|
||||
dirL = -1;
|
||||
}
|
||||
else
|
||||
if (psa->fLogicalOrder && psa->fRTL)
|
||||
{
|
||||
initGlyph = 0;
|
||||
finaGlyph = cGlyphs-1;
|
||||
dirR = -1;
|
||||
dirL = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
initGlyph = cGlyphs-1;
|
||||
finaGlyph = 0;
|
||||
dirR = 1;
|
||||
dirL = -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < cGlyphs; i++)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue