From: YAMAMOTO Mitsuharu Date: Mon, 27 Aug 2007 08:31:30 +0000 (+0000) Subject: (x_draw_composite_glyph_string_foreground): Draw rectangle X-Git-Tag: emacs-pretest-23.0.90~11260 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=83cc8d356afe3bfd68da74b822549e02047ed041;p=emacs.git (x_draw_composite_glyph_string_foreground): Draw rectangle for nonexistent or zero-width glyph in composition glyph. --- 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 + + * macterm.c (x_draw_composite_glyph_string_foreground): Draw rectangle + for nonexistent or zero-width glyph in composition glyph. + 2007-08-25 Stefan Monnier * 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); } }