evas: don't search other fonts only for INHERITED script unicodes
authorYoungbok Shin <youngb.shin@samsung.com>
Mon, 11 Sep 2017 05:52:03 +0000 (08:52 +0300)
committerDaniel Hirt <hirt.danny@gmail.com>
Mon, 11 Sep 2017 05:52:03 +0000 (08:52 +0300)
Summary:
INHERITED script unicodes are only meaningful when it comes
after the previous unicode from same font.
Even if there is no glyph for the INHERTED script unicode from current font,
don't search other font for loading the unicdoe as first unicode
of next item. It will be meaningless.
@fix

Test Plan:
Check the following Emoji sequence with an emoji font
which does not have variation selector glyphs.
{ 0x1F3F3, 0xFE0F, 0x200D, 0x1F308 }

Reviewers: raster, cedric, herdsman, jpeg, woohyun

Reviewed By: herdsman

Differential Revision: https://phab.enlightenment.org/D5156

src/lib/evas/common/evas_font_query.c

index 081f9a5..8fe82da 100644 (file)
@@ -77,6 +77,12 @@ evas_common_font_query_run_font_end_get(RGBA_Font *fn, RGBA_Font_Int **script_fi
               * the meanwhile. */
              if (*itr <= 0x1F)
                 continue;
+
+             /* Skip searching font for INHERITED script unicodes.
+              * It is meaningful when only it comes after other unicodes from same font. */
+             if (evas_common_language_char_script_get(*itr) == EVAS_SCRIPT_INHERITED)
+                continue;
+
              /* Break if either it's not in the font, or if it is in the
               * script's font. */
              if (!evas_common_get_char_index(fi, *itr))