summaryrefslogtreecommitdiff
path: root/pango
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2012-12-30 20:52:10 -0600
committerBehdad Esfahbod <behdad@behdad.org>2012-12-30 20:52:10 -0600
commita4f56b5d8b3c3009fea7dafc3804fe573045bb32 (patch)
tree18ae120d43e4e6cfe5b7cbfb4648cb5f218368c9 /pango
parentf0cd936cf62c552bc6b17f6ecb70c2de783a9e80 (diff)
downloadpango-a4f56b5d8b3c3009fea7dafc3804fe573045bb32.tar.gz
Fix most of "failed to choose font" warnings
If we are in fallback mode, with a font that has to space glyph, then looking up engine/font for any character not in the font was failing badly. In that case, if there's only one engine (which is the case these days), just choose it.
Diffstat (limited to 'pango')
-rw-r--r--pango/pango-context.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/pango/pango-context.c b/pango/pango-context.c
index b15f44d1..6c61d777 100644
--- a/pango/pango-context.c
+++ b/pango/pango-context.c
@@ -1155,7 +1155,7 @@ typedef struct {
} GetShaperFontInfo;
static gboolean
-get_shaper_and_font_foreach (PangoFontset *fontset G_GNUC_UNUSED,
+get_shaper_and_font_foreach (PangoFontset *fontset,
PangoFont *font,
gpointer data)
{
@@ -1180,6 +1180,15 @@ get_shaper_and_font_foreach (PangoFontset *fontset G_GNUC_UNUSED,
}
}
+ if (!fontset && info->engines && info->engines->next == NULL)
+ {
+ /* We are in no-fallback mode and there's only one engine, just
+ * return it. */
+ info->shape_engine = (PangoEngineShape *) info->engines->data;
+ info->font = font;
+ return TRUE;
+ }
+
return FALSE;
}