From: Aric Stewart Subject: gdi32: in LAYOUT_RTL lpDX values are from the right, even though they are positive values. Message-Id: <51C45D60.3000008@codeweavers.com> Date: Fri, 21 Jun 2013 09:04:16 -0500 Partial fix for bug 33794 --- dlls/gdi32/font.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c index 8fb101f..e41be7c 100644 --- a/dlls/gdi32/font.c +++ b/dlls/gdi32/font.c @@ -2281,7 +2281,7 @@ BOOL WINAPI ExtTextOutW( HDC hdc, INT x, INT y, UINT flags, { for (i = 0; i < count; i++) { - deltas[i].x = lpDx[i * 2] + char_extra; + deltas[i].x = ((layout&LAYOUT_RTL)?-lpDx[i * 2]:lpDx[i * 2]) + char_extra; deltas[i].y = -lpDx[i * 2 + 1]; } } @@ -2289,7 +2289,7 @@ BOOL WINAPI ExtTextOutW( HDC hdc, INT x, INT y, UINT flags, { for (i = 0; i < count; i++) { - deltas[i].x = lpDx[i] + char_extra; + deltas[i].x = ((layout&LAYOUT_RTL)?-lpDx[i]:lpDx[i]) + char_extra; deltas[i].y = 0; } }