aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/xterm.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/xterm.c b/src/xterm.c
index bd0fdde01ee..469077c8972 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -2111,6 +2111,7 @@ x_draw_fringe_bitmap (struct window *w, struct glyph_row *row, struct draw_fring
2111 int depth = FRAME_DISPLAY_INFO (f)->n_planes; 2111 int depth = FRAME_DISPLAY_INFO (f)->n_planes;
2112 XGCValues gcv; 2112 XGCValues gcv;
2113 unsigned long background = face->background; 2113 unsigned long background = face->background;
2114 XColor bg;
2114#ifdef HAVE_XRENDER 2115#ifdef HAVE_XRENDER
2115 Picture picture = None; 2116 Picture picture = None;
2116 XRenderPictureAttributes attrs; 2117 XRenderPictureAttributes attrs;
@@ -2123,9 +2124,18 @@ x_draw_fringe_bitmap (struct window *w, struct glyph_row *row, struct draw_fring
2123 else 2124 else
2124 bits = (char *) p->bits + p->dh; 2125 bits = (char *) p->bits + p->dh;
2125 2126
2126 if (FRAME_DISPLAY_INFO (f)->alpha_bits) 2127 if (FRAME_DISPLAY_INFO (f)->alpha_bits
2128 && f->alpha_background < 1.0)
2127 { 2129 {
2128 background = (background & ~FRAME_DISPLAY_INFO (f)->alpha_mask); 2130 bg.pixel = background;
2131 x_query_colors (f, &bg, 1);
2132 bg.red *= f->alpha_background;
2133 bg.green *= f->alpha_background;
2134 bg.blue *= f->alpha_background;
2135
2136 background = x_make_truecolor_pixel (FRAME_DISPLAY_INFO (f),
2137 bg.red, bg.green, bg.blue);
2138 background &= ~FRAME_DISPLAY_INFO (f)->alpha_mask;
2129 background |= (((unsigned long) (f->alpha_background * 0xffff) 2139 background |= (((unsigned long) (f->alpha_background * 0xffff)
2130 >> (16 - FRAME_DISPLAY_INFO (f)->alpha_bits)) 2140 >> (16 - FRAME_DISPLAY_INFO (f)->alpha_bits))
2131 << FRAME_DISPLAY_INFO (f)->alpha_offset); 2141 << FRAME_DISPLAY_INFO (f)->alpha_offset);