Make cursor alpha consistent with a transparent background

* src/xfont.c (xfont_draw):
* src/xftfont.c (xftfont_shape):
* src/xterm.c (x_clear_glyph_string_rect): Don't respect
background alpha when drawing the cursor.
This commit is contained in:
Po Lu 2022-01-31 13:06:14 +08:00
parent ae8332b830
commit eb9dd32130
3 changed files with 6 additions and 3 deletions

View file

@ -1016,7 +1016,8 @@ xfont_draw (struct glyph_string *s, int from, int to, int x, int y,
int height = FONT_HEIGHT (s->font), ascent = FONT_BASE (s->font);
x_xr_apply_ext_clip (s->f, gc);
x_xrender_color_from_gc_background (s->f, gc, &xc, true);
x_xrender_color_from_gc_background (s->f, gc, &xc,
s->hl != DRAW_CURSOR);
XRenderFillRectangle (FRAME_X_DISPLAY (s->f),
PictOpSrc, FRAME_X_PICTURE (s->f),
&xc, x, y - ascent, s->width, height);

View file

@ -519,7 +519,7 @@ xftfont_draw (struct glyph_string *s, int from, int to, int x, int y,
0, 0, s->clip, s->num_clips);
else
x_xr_reset_ext_clip (f);
x_xrender_color_from_gc_background (s->f, s->gc, &xc, true);
x_xrender_color_from_gc_background (s->f, s->gc, &xc, s->hl != DRAW_CURSOR);
XRenderFillRectangle (FRAME_X_DISPLAY (s->f),
PictOpSrc, FRAME_X_PICTURE (s->f),
&xc, x, y - ascent, s->width, height);

View file

@ -2357,7 +2357,9 @@ x_compute_glyph_string_overhangs (struct glyph_string *s)
static void
x_clear_glyph_string_rect (struct glyph_string *s, int x, int y, int w, int h)
{
x_clear_rectangle (s->f, s->gc, x, y, w, h, true);
x_clear_rectangle (s->f, s->gc, x, y, w, h,
(s->first_glyph->type != STRETCH_GLYPH
|| s->hl != DRAW_CURSOR));
}