summaryrefslogtreecommitdiff
path: root/pango/pangoxft-font.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-07-03 22:40:20 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-07-03 22:40:20 +0000
commit6ebb942adbf89cfda1ac868a47057d9cabe91780 (patch)
tree3ab14e74a3a4c61a0c1e9ae32cfaf6bc13aafaff /pango/pangoxft-font.c
parent145341236ea2dad9e5a0e7270d0b6dc7d9b09770 (diff)
downloadpango-6ebb942adbf89cfda1ac868a47057d9cabe91780.tar.gz
Be more robust when trying to set the unicode character map on the font.
Wed Jul 3 18:39:45 2002 Owen Taylor <otaylor@redhat.com> * pango/pangoft2.c pango/pangoxft-font.c: Be more robust when trying to set the unicode character map on the font. * pango/pangoft2.c pango/pangoft2-private.h: Obey FC_HINTING, FC_AUTOHINT.
Diffstat (limited to 'pango/pangoxft-font.c')
-rw-r--r--pango/pangoxft-font.c45
1 files changed, 43 insertions, 2 deletions
diff --git a/pango/pangoxft-font.c b/pango/pangoxft-font.c
index 48fea5c0..2d017bde 100644
--- a/pango/pangoxft-font.c
+++ b/pango/pangoxft-font.c
@@ -685,6 +685,44 @@ pango_xft_font_find_shaper (PangoFont *font,
return (PangoEngineShape *)pango_map_get_engine (shape_map, ch);
}
+gboolean
+set_unicode_charmap (FT_Face face)
+{
+ int charmap;
+
+ for (charmap = 0; charmap < face->num_charmaps; charmap++)
+ if (face->charmaps[charmap]->encoding == ft_encoding_unicode)
+ {
+ FT_Error error = FT_Set_Charmap(face, face->charmaps[charmap]);
+ return error == FT_Err_Ok;
+ }
+
+ return FALSE;
+}
+
+void
+load_fallback_font (PangoXftFont *xfont)
+{
+ Display *display;
+ int screen;
+ XftFont *xft_font;
+
+ _pango_xft_font_map_get_info (xfont->fontmap, &display, &screen);
+
+ xft_font = XftFontOpen (display, screen,
+ FC_FAMILY, FcTypeString, "sans",
+ FC_SIZE, FcTypeDouble, (double)pango_font_description_get_size (xfont->description)/PANGO_SCALE,
+ NULL);
+
+ if (!xft_font)
+ {
+ g_warning ("Cannot open fallback font, nothing to do");
+ exit (1);
+ }
+
+ xfont->xft_font = xft_font;
+}
+
/**
* pango_xft_font_get_font:
* @font: a #PangoFont.
@@ -711,8 +749,11 @@ pango_xft_font_get_font (PangoFont *font)
xfont->xft_font = XftFontOpenPattern (display, FcPatternDuplicate (xfont->font_pattern));
if (!xfont->xft_font)
{
- g_warning ("Cannot open fallback font, nothing to do");
- exit (1);
+ gchar *name = pango_font_description_to_string (xfont->description);
+ g_warning ("Cannot open font file for font %s", name);
+ g_free (name);
+
+ load_fallback_font (xfont);
}
}