summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2007-08-27 08:31:30 +0000
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2007-08-27 08:31:30 +0000
commit83cc8d356afe3bfd68da74b822549e02047ed041 (patch)
treee0827a0d4a54d8a2a77ce4570c669393d60776d8
parent8a2e0b2a692dfee47dcec6f77b39210ae511db35 (diff)
downloademacs-83cc8d356afe3bfd68da74b822549e02047ed041.tar.gz
(x_draw_composite_glyph_string_foreground): Draw rectangle
for nonexistent or zero-width glyph in composition glyph.
-rw-r--r--src/ChangeLog5
-rw-r--r--src/macterm.c15
2 files changed, 16 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 9e6641ebf2a..b402b1c7646 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -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-25 Stefan Monnier <monnier@iro.umontreal.ca>
* m/amdx86-64.h: Redirect to intel386.h if compiling for i386.
diff --git a/src/macterm.c b/src/macterm.c
index 9655b09c819..0f2b053853d 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -3056,10 +3056,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);
}
}