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-22 Behdad Esfahbod <behdad@gnome.org>
+
* pango/fonts.c (gravity_map): Rename "Upright" to "Not-Rotated".
Also, reorder the user-friendly names (Not-Rotated, Rotated-Left, ...)
before the enum names (South, East, ...) such that they are used to
/* 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;