Draw relief (if any) before

drawing glyph string.
This commit is contained in:
Andrew Innes 2001-08-14 11:46:33 +00:00
parent 3a990b67be
commit 858a55c1e1
2 changed files with 21 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2001-08-14 Andrew Innes <andrewi@gnu.org>
* w32term.c (x_draw_glyph_string): Draw relief (if any) before
drawing glyph string.
2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
* s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series

View file

@ -4300,6 +4300,8 @@ static void
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_draw_glyph_string (s)
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 @@ x_draw_glyph_string (s)
}
/* 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);
}