From 2a6825f40a583d5dcbe2fae46ec30ac34a559ed2 Mon Sep 17 00:00:00 2001 From: Youngbok Shin Date: Mon, 11 Sep 2017 08:52:03 +0300 Subject: [PATCH] evas: don't search other fonts only for INHERITED script unicodes 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 Change-Id: Id67be086ac4d471be04721835be5bae328d0fefd --- src/lib/evas/common/evas_font_query.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lib/evas/common/evas_font_query.c b/src/lib/evas/common/evas_font_query.c index d1eca54..7f38600 100644 --- a/src/lib/evas/common/evas_font_query.c +++ b/src/lib/evas/common/evas_font_query.c @@ -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)) -- 2.7.4