diff options
Diffstat (limited to 'pango')
-rw-r--r-- | pango/pangocairo-fcfontmap.c | 5 | ||||
-rw-r--r-- | pango/pangofc-fontmap.c | 5 | ||||
-rw-r--r-- | pango/pangoft2-fontmap.c | 8 | ||||
-rw-r--r-- | pango/pangoft2-private.h | 3 | ||||
-rw-r--r-- | pango/pangoft2.c | 2 |
5 files changed, 15 insertions, 8 deletions
diff --git a/pango/pangocairo-fcfontmap.c b/pango/pangocairo-fcfontmap.c index 83a39616..cc1360ba 100644 --- a/pango/pangocairo-fcfontmap.c +++ b/pango/pangocairo-fcfontmap.c @@ -94,8 +94,9 @@ pango_cairo_fc_font_map_context_substitute (PangoFcFontMap *fcfontmap, { FcConfigSubstitute (NULL, pattern, FcMatchPattern); - cairo_ft_font_options_substitute (_pango_cairo_context_get_merged_font_options (context), - pattern); + if (context) + cairo_ft_font_options_substitute (_pango_cairo_context_get_merged_font_options (context), + pattern); FcDefaultSubstitute (pattern); } diff --git a/pango/pangofc-fontmap.c b/pango/pangofc-fontmap.c index 9a343877..f383e904 100644 --- a/pango/pangofc-fontmap.c +++ b/pango/pangofc-fontmap.c @@ -1704,7 +1704,10 @@ pango_fc_face_describe (PangoFontFace *face) NULL); g_assert (match_pattern); - + + FcConfigSubstitute (NULL, match_pattern, FcMatchPattern); + FcDefaultSubstitute (match_pattern); + result_pattern = FcFontMatch (NULL, match_pattern, &res); if (result_pattern) { diff --git a/pango/pangoft2-fontmap.c b/pango/pangoft2-fontmap.c index 333e00bf..639ddebe 100644 --- a/pango/pangoft2-fontmap.c +++ b/pango/pangoft2-fontmap.c @@ -62,8 +62,6 @@ struct _PangoFT2FontMapClass }; static void pango_ft2_font_map_finalize (GObject *object); -static void pango_ft2_font_map_default_substitute (PangoFcFontMap *fcfontmap, - FcPattern *pattern); static PangoFcFont * pango_ft2_font_map_new_font (PangoFcFontMap *fcfontmap, FcPattern *pattern); static double pango_ft2_font_map_get_resolution (PangoFcFontMap *fcfontmap, @@ -80,7 +78,7 @@ pango_ft2_font_map_class_init (PangoFT2FontMapClass *class) PangoFcFontMapClass *fcfontmap_class = PANGO_FC_FONT_MAP_CLASS (class); gobject_class->finalize = pango_ft2_font_map_finalize; - fcfontmap_class->default_substitute = pango_ft2_font_map_default_substitute; + fcfontmap_class->default_substitute = _pango_ft2_font_map_default_substitute; fcfontmap_class->new_font = pango_ft2_font_map_new_font; fcfontmap_class->get_resolution = pango_ft2_font_map_get_resolution; } @@ -323,8 +321,8 @@ _pango_ft2_font_map_get_renderer (PangoFT2FontMap *ft2fontmap) return ft2fontmap->renderer; } -static void -pango_ft2_font_map_default_substitute (PangoFcFontMap *fcfontmap, +void +_pango_ft2_font_map_default_substitute (PangoFcFontMap *fcfontmap, FcPattern *pattern) { PangoFT2FontMap *ft2fontmap = PANGO_FT2_FONT_MAP (fcfontmap); diff --git a/pango/pangoft2-private.h b/pango/pangoft2-private.h index d1c11b90..b79f3b5c 100644 --- a/pango/pangoft2-private.h +++ b/pango/pangoft2-private.h @@ -24,6 +24,7 @@ #define __PANGOFT2_PRIVATE_H__ #include <pango/pangoft2.h> +#include <pango/pangofc-fontmap.h> #include <pango/pango-renderer.h> #include <fontconfig/fontconfig.h> @@ -82,6 +83,8 @@ PangoFT2Font * _pango_ft2_font_new (PangoFT2FontMap *ft2fontmap FcPattern *pattern); FT_Library _pango_ft2_font_map_get_library (PangoFontMap *fontmap); const char *_pango_ft2_ft_strerror (FT_Error error); +void _pango_ft2_font_map_default_substitute (PangoFcFontMap *fcfontmap, + FcPattern *pattern); void *_pango_ft2_font_get_cache_glyph_data (PangoFont *font, int glyph_index); diff --git a/pango/pangoft2.c b/pango/pangoft2.c index 35960a43..b7f1470e 100644 --- a/pango/pangoft2.c +++ b/pango/pangoft2.c @@ -100,6 +100,8 @@ load_fallback_face (PangoFT2Font *ft2font, FC_PIXEL_SIZE, FcTypeDouble, (double)ft2font->size / PANGO_SCALE, NULL); + _pango_ft2_font_map_default_substitute (fcfont->fontmap, sans); + matched = FcFontMatch (NULL, sans, &result); if (FcPatternGetString (matched, FC_FILE, 0, &filename2) != FcResultMatch) |