summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2022-07-09 11:37:31 -0400
committerMatthias Clasen <mclasen@redhat.com>2022-07-09 11:41:07 -0400
commit02a06423e31bcfb65ef314f01096a1de2d780654 (patch)
tree4529a86827909e588e33a7617e881b2e8043e38d
parent2c59c10084d0d1bf35a00189204bf71c2c72da99 (diff)
downloadpango-02a06423e31bcfb65ef314f01096a1de2d780654.tar.gz
fontconfig: Be more careful with generic families
Actually skip non-monospace fonts for 'Monospace', and skip color Emoji fonts when we're not assembling the 'Emoji' alias.
-rw-r--r--pango2/pangofc-fontmap.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/pango2/pangofc-fontmap.c b/pango2/pangofc-fontmap.c
index d07cac5d..f2443041 100644
--- a/pango2/pangofc-fontmap.c
+++ b/pango2/pangofc-fontmap.c
@@ -450,6 +450,7 @@ pango2_fc_font_map_populate (Pango2FontMap *map)
int index;
FcLangSet *langs;
int spacing;
+ gboolean color;
const char *family_name;
pat = ret->fonts[j];
@@ -460,16 +461,20 @@ pango2_fc_font_map_populate (Pango2FontMap *map)
if (FcPatternGetLangSet (pat, FC_LANG, 0, &langs) != FcResultMatch)
continue;
+ if (FcPatternGetBool (pat, FC_COLOR, 0, &color) != FcResultMatch)
+ color = FALSE;
+
if (FcLangSetEqual (langs, no_langs))
continue;
- if ((strcmp (generic_names[i], "emoji") == 0) != FcLangSetEqual (langs, emoji_langs))
+ /* No color Emoji here, please */
+ if (FcLangSetEqual (langs, emoji_langs) && color)
continue;
if (FcPatternGetInteger (pat, FC_SPACING, 0, &spacing) != FcResultMatch)
spacing = FC_PROPORTIONAL;
- if (strcmp (generic_names[i], "monospace") == 0 && spacing != FC_MONO)
+ if (strcmp (generic_names[i], "Monospace") == 0 && spacing != FC_MONO)
continue;
if (FcPatternGetString (pat, FC_FAMILY, 0, (FcChar8 **)(void*)&family_name) != FcResultMatch)
@@ -505,7 +510,6 @@ pango2_fc_font_map_populate (Pango2FontMap *map)
}
FcLangSetDestroy (no_langs);
- FcLangSetDestroy (emoji_langs);
FcObjectSetDestroy (os);