diff options
| author | Andrew Innes | 2001-08-14 11:46:33 +0000 |
|---|---|---|
| committer | Andrew Innes | 2001-08-14 11:46:33 +0000 |
| commit | 858a55c1e1399663b15f6da44620e408b47ea343 (patch) | |
| tree | eac7a36160baf0f28ad85c8b4521c0be63350f92 /src | |
| parent | 3a990b67be9f6f382a623448e475883556695ced (diff) | |
| download | emacs-858a55c1e1399663b15f6da44620e408b47ea343.tar.gz emacs-858a55c1e1399663b15f6da44620e408b47ea343.zip | |
Draw relief (if any) before
drawing glyph string.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/w32term.c | 17 |
2 files changed, 21 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 1d8a3bd1269..c6d75ebab31 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2001-08-14 Andrew Innes <andrewi@gnu.org> | ||
| 2 | |||
| 3 | * w32term.c (x_draw_glyph_string): Draw relief (if any) before | ||
| 4 | drawing glyph string. | ||
| 5 | |||
| 1 | 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il> | 6 | 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il> |
| 2 | 7 | ||
| 3 | * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series | 8 | * 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 | |||
| 4300 | x_draw_glyph_string (s) | 4300 | x_draw_glyph_string (s) |
| 4301 | struct glyph_string *s; | 4301 | struct glyph_string *s; |
| 4302 | { | 4302 | { |
| 4303 | int relief_drawn_p = 0; | ||
| 4304 | |||
| 4303 | /* If S draws into the background of its successor, draw the | 4305 | /* If S draws into the background of its successor, draw the |
| 4304 | background of the successor first so that S can draw into it. | 4306 | background of the successor first so that S can draw into it. |
| 4305 | This makes S->next use XDrawString instead of XDrawImageString. */ | 4307 | This makes S->next use XDrawString instead of XDrawImageString. */ |
| @@ -4315,6 +4317,19 @@ x_draw_glyph_string (s) | |||
| 4315 | x_set_glyph_string_gc (s); | 4317 | x_set_glyph_string_gc (s); |
| 4316 | x_set_glyph_string_clipping (s); | 4318 | x_set_glyph_string_clipping (s); |
| 4317 | 4319 | ||
| 4320 | /* Draw relief (if any) in advance for char/composition so that the | ||
| 4321 | glyph string can be drawn over it. */ | ||
| 4322 | if (!s->for_overlaps_p | ||
| 4323 | && s->face->box != FACE_NO_BOX | ||
| 4324 | && (s->first_glyph->type == CHAR_GLYPH | ||
| 4325 | || s->first_glyph->type == COMPOSITE_GLYPH)) | ||
| 4326 | |||
| 4327 | { | ||
| 4328 | x_draw_glyph_string_background (s, 1); | ||
| 4329 | x_draw_glyph_string_box (s); | ||
| 4330 | relief_drawn_p = 1; | ||
| 4331 | } | ||
| 4332 | |||
| 4318 | switch (s->first_glyph->type) | 4333 | switch (s->first_glyph->type) |
| 4319 | { | 4334 | { |
| 4320 | case IMAGE_GLYPH: | 4335 | case IMAGE_GLYPH: |
| @@ -4403,7 +4418,7 @@ x_draw_glyph_string (s) | |||
| 4403 | } | 4418 | } |
| 4404 | 4419 | ||
| 4405 | /* Draw relief. */ | 4420 | /* Draw relief. */ |
| 4406 | if (s->face->box != FACE_NO_BOX) | 4421 | if (!relief_drawn_p && s->face->box != FACE_NO_BOX) |
| 4407 | x_draw_glyph_string_box (s); | 4422 | x_draw_glyph_string_box (s); |
| 4408 | } | 4423 | } |
| 4409 | 4424 | ||