diff options
author | Matthias Clasen <mclasen@redhat.com> | 2022-07-09 11:34:05 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2022-07-09 12:08:18 -0400 |
commit | 06b5b427552599ef45484b6ecac9820333b4bf03 (patch) | |
tree | ec7852623e18a63187aad8d15e52fc1125cf69cf | |
parent | fe4fc164f9c2a7d6d5c95cd532025fc75a59fc93 (diff) | |
download | pango-06b5b427552599ef45484b6ecac9820333b4bf03.tar.gz |
Use Emoji script when itemizing text emoji
This is an attempt at improving font selection
for text-presentation Emoji.
-rw-r--r-- | pango2/itemize.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/pango2/itemize.c b/pango2/itemize.c index 537600d3..cfc5946f 100644 --- a/pango2/itemize.c +++ b/pango2/itemize.c @@ -884,18 +884,31 @@ itemize_state_update_for_new_run (ItemizeState *state) if (!state->current_fonts) { - gboolean is_emoji = pango2_emoji_iter_get (&state->emoji_iter, state->preferred) == EMOJI_PRESENTATION_EMOJI; + Pango2FontDescription *font_desc = state->font_desc; + Pango2Language *lang = state->derived_lang; + EmojiPresentation presentation = pango2_emoji_iter_get (&state->emoji_iter, state->preferred); - if (is_emoji && !state->emoji_font_desc) + if (presentation == EMOJI_PRESENTATION_EMOJI) { - state->emoji_font_desc = pango2_font_description_copy_static (state->font_desc); - pango2_font_description_set_family_static (state->emoji_font_desc, "emoji"); + if (!state->emoji_font_desc) + { + state->emoji_font_desc = pango2_font_description_copy_static (state->font_desc); + pango2_font_description_set_family_static (state->emoji_font_desc, "emoji"); + } + + font_desc = state->emoji_font_desc; + lang = pango2_language_from_string ("und-zsye"); + } + else if (presentation == EMOJI_PRESENTATION_TEXT) + { + font_desc = state->font_desc; + lang = pango2_language_from_string ("und-zsye"); } state->current_fonts = pango2_font_map_load_fontset (state->context->font_map, state->context, - is_emoji ? state->emoji_font_desc : state->font_desc, - state->derived_lang); + font_desc, + lang); state->cache = get_font_cache (state->current_fonts); } |