Henri Verbeet : usp10: Properly determine the glyph run direction when shaping Script_Arabic.
Module: wine Branch: master Commit: f13dea5684f2fe3d93981d98a761995a44bce7bb URL: http://source.winehq.org/git/wine.git/?a=commit;h=f13dea5684f2fe3d93981d98a7... Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Thu Mar 2 09:38:42 2017 +0100 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(a)codeweavers.com> Signed-off-by: Aric Stewart <aric(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/usp10/shape.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/dlls/usp10/shape.c b/dlls/usp10/shape.c index aa98366..ce19465 100644 --- a/dlls/usp10/shape.c +++ b/dlls/usp10/shape.c @@ -1055,15 +1055,15 @@ static void ContextualShape_Arabic(HDC hdc, ScriptCache *psc, SCRIPT_ANALYSIS *p return; } - if (!psa->fLogicalOrder && psa->fRTL) + if (psa->fLogicalOrder && psa->fRTL) { - dirR = 1; - dirL = -1; + dirR = -1; + dirL = 1; } else { - dirR = -1; - dirL = 1; + 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++) {
participants (1)
-
Alexandre Julliard