forked from enlightenment/efl
evas_object_textblock: treat variation sequence as single run
Summary: Variation sequence treated as a single run, if we found one, we keep looking adding to the same run, but if it is not, then we need to start a new one. Before: {F3826735} After: {F3826736} Test Plan: ``` #include <stdio.h> #include <Elementary.h> /* gcc -o example test.c `pkg-config --cflags --libs elementary` */ EAPI_MAIN int elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) { Evas_Object *win, *en; elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); win = elm_win_util_standard_add("emoji-example", "emoji-example"); elm_win_autodel_set(win, EINA_TRUE); en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(en, "<font_size=25>☪☪️☪가</font_size>"); evas_object_show(en); elm_object_content_set(win, en); evas_object_resize(win, 400, 200); evas_object_show(win); elm_run(); return 0; } ELM_MAIN() ``` Reviewers: woohyun, bowonryu Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T8542 Differential Revision: https://phab.enlightenment.org/D11096
This commit is contained in:
parent
3d2f99af9e
commit
8143b81dd6
|
@ -68,6 +68,7 @@ get_top_font:
|
|||
|
||||
/* Find the longest run of the same font starting from the start position
|
||||
* and update cur_fi accordingly. */
|
||||
Eina_Unicode variation_sequence = 0;
|
||||
itr = text;
|
||||
while (itr < run_end)
|
||||
{
|
||||
|
@ -85,7 +86,17 @@ get_top_font:
|
|||
if (evas_common_language_char_script_get(*itr) == EVAS_SCRIPT_INHERITED)
|
||||
continue;
|
||||
|
||||
Eina_Unicode variation_sequence = VAR_SEQ_SAFE(itr+1);
|
||||
if (!variation_sequence)
|
||||
{
|
||||
variation_sequence = VAR_SEQ_SAFE(itr+1);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Variation sequence treated as single run, if we found one, we keep looking adding to same
|
||||
* run, but if it is not, then we need to start a new one */
|
||||
if (variation_sequence != VAR_SEQ_SAFE(itr+1))
|
||||
break;
|
||||
}
|
||||
|
||||
/* Break if either it's not in the font, or if it is in the
|
||||
* script's font. */
|
||||
|
|
Loading…
Reference in New Issue