diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | pango/pango-context.c | 10 |
2 files changed, 16 insertions, 4 deletions
@@ -1,3 +1,13 @@ +2006-08-22 Behdad Esfahbod <behdad@gnome.org> + + * pango/pango-context.c (itemize_state_process_run): Find shaper/font + for Private Use and space characters too. Finding shaper for Private + Use is needed for any practical use of those areas. Ideally, spaces + should be synthesized if they are not available in the font, but + falling back to other fonts is far easier, and should give pretty good + results with the current set of common fonts. These fixes allow + Firefox+Pango to render MathML like Firefox+Xft does. + 2006-08-21 Behdad Esfahbod <behdad@gnome.org> * === Released 1.14.1 === diff --git a/pango/pango-context.c b/pango/pango-context.c index 2e0c2bb4..51d709b4 100644 --- a/pango/pango-context.c +++ b/pango/pango-context.c @@ -1082,17 +1082,19 @@ itemize_state_process_run (ItemizeState *state) /* We don't want space characters to affect font selection; in general, * it's always wrong to select a font just to render a space. - * To make this really work well, we'd need to emulate missing - * space characters, which we don't yet do, so we sometimes - * will get hex boxes. * * The exception of U+3000 (IDEOGRAPHIC SPACE) here is because we * want to choose an ideographic space that matches ideographic text * in cell width. Even if we were emulating missing spaces, an * emulated ideographic space for the primary font wouldn't be the * right size. + * + * The exception of PrivateUse characters is indeed necessary to be + * able to render any of them. */ - if (!g_unichar_isgraph (wc) && wc != 0x3000) + if (G_UNLIKELY (!g_unichar_isgraph (wc) && + !g_unichar_isspace (wc) /*wc != 0x3000*/ && + g_unichar_type (wc) != G_UNICODE_PRIVATE_USE)) { shape_engine = NULL; font = NULL; |