[PATCH 3/3] dwrite/opentype: Do not include base advance to the mark advance offset.

Nikolay Sivov nsivov at codeweavers.com
Mon May 2 01:22:18 CDT 2022


This is handled later using attachment chains, after all positional features are applied.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/dwrite/opentype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dlls/dwrite/opentype.c b/dlls/dwrite/opentype.c
index f07b010baae..50e83769715 100644
--- a/dlls/dwrite/opentype.c
+++ b/dlls/dwrite/opentype.c
@@ -4320,7 +4320,7 @@ static BOOL opentype_layout_apply_mark_array(struct scriptshaping_context *conte
     if (context->is_rtl)
         context->offsets[context->cur].advanceOffset = mark_x - base_x;
     else
-        context->offsets[context->cur].advanceOffset = -context->advances[glyph_pos] + base_x - mark_x;
+        context->offsets[context->cur].advanceOffset = base_x - mark_x;
     context->offsets[context->cur].ascenderOffset = base_y - mark_y;
     opentype_set_glyph_attach_type(context, context->cur, GLYPH_ATTACH_MARK);
     context->glyph_infos[context->cur].attach_chain = (int)glyph_pos - (int)context->cur;
-- 
2.35.1




More information about the wine-devel mailing list