(x_draw_composite_glyph_string_foreground): Draw rectangle
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Mon, 27 Aug 2007 08:33:57 +0000 (08:33 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Mon, 27 Aug 2007 08:33:57 +0000 (08:33 +0000)
for nonexistent or zero-width glyph in composition glyph.

src/ChangeLog
src/macterm.c

index 73a906b..5ad9ac7 100644 (file)
@@ -1,3 +1,8 @@
+2007-08-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macterm.c (x_draw_composite_glyph_string_foreground): Draw rectangle
+       for nonexistent or zero-width glyph in composition glyph.
+
 2007-08-27  Richard Stallman  <rms@gnu.org>
 
        * eval.c (condition-case): Doc fix.
index b282bac..01ac732 100644 (file)
@@ -2973,10 +2973,17 @@ x_draw_composite_glyph_string_foreground (s)
   else
     {
       for (i = 0; i < s->nchars; i++, ++s->gidx)
-       mac_draw_image_string_16 (s->f, s->gc,
-                                 x + s->cmp->offsets[s->gidx * 2],
-                                 s->ybase - s->cmp->offsets[s->gidx * 2 + 1],
-                                 s->char2b + i, 1, 0, s->face->overstrike);
+       if (mac_per_char_metric (GC_FONT (s->gc), s->char2b + i, 0) == NULL)
+         /* This is a nonexistent or zero-width glyph such as a
+            combining diacritic.  Draw a rectangle.  */
+         mac_draw_rectangle (s->f, s->gc,
+                             x + s->cmp->offsets[s->gidx * 2], s->y,
+                             FONT_WIDTH (GC_FONT (s->gc)) - 1, s->height - 1);
+       else
+         mac_draw_image_string_16 (s->f, s->gc,
+                                   x + s->cmp->offsets[s->gidx * 2],
+                                   s->ybase - s->cmp->offsets[s->gidx * 2 + 1],
+                                   s->char2b + i, 1, 0, s->face->overstrike);
     }
 }