diff options
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 2007-08-27 08:33:57 +0000 |
---|---|---|
committer | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 2007-08-27 08:33:57 +0000 |
commit | 769174c4d4efe3e849480e4410c679605bb51eb2 (patch) | |
tree | 04af464e358dd4edeb5d04ba548fe3904c254e96 /src/macterm.c | |
parent | a225da012cf8f41c6978dc2fd884be23792adb76 (diff) | |
download | emacs-769174c4d4efe3e849480e4410c679605bb51eb2.tar.gz emacs-769174c4d4efe3e849480e4410c679605bb51eb2.tar.bz2 emacs-769174c4d4efe3e849480e4410c679605bb51eb2.zip |
(x_draw_composite_glyph_string_foreground): Draw rectangle
for nonexistent or zero-width glyph in composition glyph.
Diffstat (limited to 'src/macterm.c')
-rw-r--r-- | src/macterm.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/macterm.c b/src/macterm.c index b282bac3aa6..01ac7328d6f 100644 --- a/src/macterm.c +++ b/src/macterm.c @@ -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); } } |