Mercurial > emacs
changeset 38807:a59ac9807c9d
Draw relief (if any) before
drawing glyph string.
author | Andrew Innes <andrewi@gnu.org> |
---|---|
date | Tue, 14 Aug 2001 11:44:40 +0000 |
parents | 45b12f1bd5fe |
children | 1f42d8491554 |
files | src/w32term.c |
diffstat | 1 files changed, 16 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/w32term.c Tue Aug 14 11:44:38 2001 +0000 +++ b/src/w32term.c Tue Aug 14 11:44:40 2001 +0000 @@ -4300,6 +4300,8 @@ x_draw_glyph_string (s) struct glyph_string *s; { + int relief_drawn_p = 0; + /* If S draws into the background of its successor, draw the background of the successor first so that S can draw into it. This makes S->next use XDrawString instead of XDrawImageString. */ @@ -4315,6 +4317,19 @@ x_set_glyph_string_gc (s); x_set_glyph_string_clipping (s); + /* Draw relief (if any) in advance for char/composition so that the + glyph string can be drawn over it. */ + if (!s->for_overlaps_p + && s->face->box != FACE_NO_BOX + && (s->first_glyph->type == CHAR_GLYPH + || s->first_glyph->type == COMPOSITE_GLYPH)) + + { + x_draw_glyph_string_background (s, 1); + x_draw_glyph_string_box (s); + relief_drawn_p = 1; + } + switch (s->first_glyph->type) { case IMAGE_GLYPH: @@ -4403,7 +4418,7 @@ } /* Draw relief. */ - if (s->face->box != FACE_NO_BOX) + if (!relief_drawn_p && s->face->box != FACE_NO_BOX) x_draw_glyph_string_box (s); }