From 858a55c1e1399663b15f6da44620e408b47ea343 Mon Sep 17 00:00:00 2001 From: Andrew Innes Date: Tue, 14 Aug 2001 11:46:33 +0000 Subject: [PATCH] Draw relief (if any) before drawing glyph string. --- src/ChangeLog | 5 +++++ src/w32term.c | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 1d8a3bd1269..c6d75ebab31 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2001-08-14 Andrew Innes + + * w32term.c (x_draw_glyph_string): Draw relief (if any) before + drawing glyph string. + 2001-08-14 Eli Zaretskii * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series diff --git a/src/w32term.c b/src/w32term.c index 085d1e2e898..372c702ecf3 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -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); } -- 2.39.5