1299 |
XDrawImageString is usually faster than XDrawString.) Always |
XDrawImageString is usually faster than XDrawString.) Always |
1300 |
use XDrawImageString when drawing the cursor so that there is |
use XDrawImageString when drawing the cursor so that there is |
1301 |
no chance that characters under a box cursor are invisible. */ |
no chance that characters under a box cursor are invisible. */ |
1302 |
if (s->for_overlaps_p |
if (s->for_overlaps |
1303 |
|| (s->background_filled_p && s->hl != DRAW_CURSOR)) |
|| (s->background_filled_p && s->hl != DRAW_CURSOR)) |
1304 |
{ |
{ |
1305 |
/* Draw characters with 16-bit or 8-bit functions. */ |
/* Draw characters with 16-bit or 8-bit functions. */ |
2604 |
/* If S draws into the background of its successor, draw the |
/* If S draws into the background of its successor, draw the |
2605 |
background of the successor first so that S can draw into it. |
background of the successor first so that S can draw into it. |
2606 |
This makes S->next use XDrawString instead of XDrawImageString. */ |
This makes S->next use XDrawString instead of XDrawImageString. */ |
2607 |
if (s->next && s->right_overhang && !s->for_overlaps_p) |
if (s->next && s->right_overhang && !s->for_overlaps) |
2608 |
{ |
{ |
2609 |
xassert (s->next->img == NULL); |
xassert (s->next->img == NULL); |
2610 |
x_set_glyph_string_gc (s->next); |
x_set_glyph_string_gc (s->next); |
2617 |
|
|
2618 |
/* Draw relief (if any) in advance for char/composition so that the |
/* Draw relief (if any) in advance for char/composition so that the |
2619 |
glyph string can be drawn over it. */ |
glyph string can be drawn over it. */ |
2620 |
if (!s->for_overlaps_p |
if (!s->for_overlaps |
2621 |
&& s->face->box != FACE_NO_BOX |
&& s->face->box != FACE_NO_BOX |
2622 |
&& (s->first_glyph->type == CHAR_GLYPH |
&& (s->first_glyph->type == CHAR_GLYPH |
2623 |
|| s->first_glyph->type == COMPOSITE_GLYPH)) |
|| s->first_glyph->type == COMPOSITE_GLYPH)) |
2643 |
break; |
break; |
2644 |
|
|
2645 |
case CHAR_GLYPH: |
case CHAR_GLYPH: |
2646 |
if (s->for_overlaps_p) |
if (s->for_overlaps) |
2647 |
s->background_filled_p = 1; |
s->background_filled_p = 1; |
2648 |
else |
else |
2649 |
x_draw_glyph_string_background (s, 0); |
x_draw_glyph_string_background (s, 0); |
2651 |
break; |
break; |
2652 |
|
|
2653 |
case COMPOSITE_GLYPH: |
case COMPOSITE_GLYPH: |
2654 |
if (s->for_overlaps_p || s->gidx > 0) |
if (s->for_overlaps || s->gidx > 0) |
2655 |
s->background_filled_p = 1; |
s->background_filled_p = 1; |
2656 |
else |
else |
2657 |
x_draw_glyph_string_background (s, 1); |
x_draw_glyph_string_background (s, 1); |
2662 |
abort (); |
abort (); |
2663 |
} |
} |
2664 |
|
|
2665 |
if (!s->for_overlaps_p) |
if (!s->for_overlaps) |
2666 |
{ |
{ |
2667 |
/* Draw underline. */ |
/* Draw underline. */ |
2668 |
if (s->face->underline_p) |
if (s->face->underline_p) |