--- rxvt-unicode/src/rxvtfont.C 2008/01/23 05:18:43 1.129 +++ rxvt-unicode/src/rxvtfont.C 2008/01/23 05:59:29 1.130 @@ -1302,7 +1302,7 @@ * Maybe make buffering into a resource flag? Compile time option doesn't seems like a * good idea from the perspective of packaging for wide variety of user configs. */ - bool buffered = bg >= 0; + bool buffered = bg >= Color_transparent; #ifdef FORCE_UNBUFFERED_XFT buffered = false; #endif @@ -1352,12 +1352,12 @@ { Picture dst = 0; - if (bg >= 0 && term->pix_colors[bg].c.color.alpha < 0xff00) + if (bg >= 0 && term->pix_colors[bg].is_opaque ()) dst = XftDrawPicture (d2); - if (bg < 0 || dst != 0) + if (dst) { - int src_x = x, src_y = y ; + int src_x = x, src_y = y; if (term->bgPixmap.is_parentOrigin ()) { @@ -1390,15 +1390,18 @@ XChangeGC (disp, gc, GCFillStyle, &gcv); } - Picture solid_color_pict = XftDrawSrcPicture (d2, &term->pix_colors[bg].c); - XRenderComposite (disp, PictOpOver, solid_color_pict, None, dst, 0, 0, 0, 0, 0, 0, w, h); + if (bg >= 0) + { + Picture solid_color_pict = XftDrawSrcPicture (d2, &term->pix_colors[bg].c); + XRenderComposite (disp, PictOpOver, solid_color_pict, None, dst, 0, 0, 0, 0, 0, 0, w, h); + } back_rendered = true; } } #endif - if (!back_rendered) + if (bg >= 0 && !back_rendered) XftDrawRect (d2, &term->pix_colors[bg].c, 0, 0, w, h); XftDrawGlyphSpec (d2, &term->pix_colors[fg].c, f, enc, ep - enc);