diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-12-16 21:00:32 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-12-16 21:00:32 +0000 |
commit | 4b651fca1f40355334a95effb46b2420b1c0ca36 (patch) | |
tree | 289666a0ae040df69350a666fb1c83576ef2d213 /pango | |
parent | 63a11ce89e6c7fbadfd36461554b77c98801f9fb (diff) | |
parent | b420d022a2979c2e86b465bca0c7d603dd136108 (diff) | |
download | pango-4b651fca1f40355334a95effb46b2420b1c0ca36.tar.gz |
Merge branch 'fix-spaceless-fonts' into 'main'
Fix handling of space-less fonts
Closes #641
See merge request GNOME/pango!552
Diffstat (limited to 'pango')
-rw-r--r-- | pango/shape.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/pango/shape.c b/pango/shape.c index 45c979f2..d0140d5e 100644 --- a/pango/shape.c +++ b/pango/shape.c @@ -137,10 +137,18 @@ pango_hb_font_get_nominal_glyph (hb_font_t *font, if (hb_font_get_nominal_glyph (context->parent, unicode, glyph)) return TRUE; + /* HarfBuzz knows how to synthesize spaces, so never replace them + * with unknown glyphs, but we do need to tell HarfBuzz that the + * font does not have a glyph. + */ + if (g_unichar_type (unicode) == G_UNICODE_SPACE_SEPARATOR) + return FALSE; + *glyph = PANGO_GET_UNKNOWN_GLYPH (unicode); /* We draw our own invalid-Unicode shape, so prevent HarfBuzz - * from using REPLACEMENT CHARACTER. */ + * from using REPLACEMENT CHARACTER. + */ if (unicode > 0x10FFFF) return TRUE; |