Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/pango/ChangeLog,v
retrieving revision 1.970
diff -u -p -r1.970 ChangeLog
--- ChangeLog	13 Sep 2004 14:24:05 -0000	1.970
+++ ChangeLog	13 Sep 2004 19:00:13 -0000
@@ -1,3 +1,9 @@
+Mon Sep 13 10:18:51 2004  Owen Taylor  <otaylor@redhat.com>
+
+	* pango/pango-context.c (itemize_state_process_run): 
+	Except ideographic spaces from the !g_unichar_isgraph() test.
+	(#145275, Federic Zhang)
+
 Mon Aug 16 14:17:56 2004  Owen Taylor  <otaylor@redhat.com>
 
 	* examples/renderdemo.c (fc_substitute_func): Fix reversed
Index: pango/pango-context.c
===================================================================
RCS file: /cvs/gnome/pango/pango/pango-context.c,v
retrieving revision 1.71
diff -u -p -r1.71 pango-context.c
--- pango/pango-context.c	10 Jul 2004 21:41:37 -0000	1.71
+++ pango/pango-context.c	13 Sep 2004 19:00:13 -0000
@@ -1057,7 +1057,19 @@ itemize_state_process_run (ItemizeState 
       PangoEngineShape *shape_engine;
       PangoFont *font;
 
-      if (!g_unichar_isgraph (wc))
+      /* 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.
+       */
+      if (!g_unichar_isgraph (wc) && wc != 0x3000)
 	{
 	  shape_engine = NULL;
 	  font = NULL;
