From: Grigori Goronzy Date: Sun, 24 Jul 2011 22:00:53 +0000 (+0200) Subject: Disable reordering of non-spacing marks X-Git-Tag: 0.10.0~27 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b8b59fa2fccc8f7a949a523d99da3f0cd416971b;p=libass Disable reordering of non-spacing marks FriBidi's line reordering algorithm reorders non-spacing marks (diacritics, etc.) to come after the base character by default. This doesn't work particularly well with our layout model and leads to wrongly positioned marks in some cases with HarfBuzz and all cases with FriBidi shaping. --- diff --git a/libass/ass_shaper.c b/libass/ass_shaper.c index 9ef5fd5..c018325 100644 --- a/libass/ass_shaper.c +++ b/libass/ass_shaper.c @@ -436,7 +436,7 @@ FriBidiStrIndex *ass_shaper_reorder(ASS_Shaper *shaper, TextInfo *text_info) // FIXME: we should actually specify // the correct paragraph base direction - level = fribidi_reorder_line(FRIBIDI_FLAGS_DEFAULT, + level = fribidi_reorder_line(0, shaper->ctypes + line->offset, line->len, 0, dir, shaper->emblevels + line->offset, NULL, shaper->cmap + line->offset);