--- rxvt-unicode/src/rxvtfont.C 2008/01/23 09:42:02 1.134 +++ rxvt-unicode/src/rxvtfont.C 2008/01/23 10:57:19 1.137 @@ -238,23 +238,20 @@ else if (color >= 0) { #if XFT - bool done = false; + Picture dst; # ifdef HAVE_BG_PIXMAP - if (term->bgPixmap.pixmap && color >= 0 && !term->pix_colors[color].is_opaque ()) + if (term->bgPixmap.pixmap + && !term->pix_colors[color].is_opaque () + && ((dst = XftDrawPicture (d)))) { - Picture dst = XftDrawPicture (d); + XClearArea (disp, d, x, y, w, h, false); - if (dst != 0) - { - XClearArea (disp, d, x, y, w, h, false); - Picture solid_color_pict = XftDrawSrcPicture (d, &term->pix_colors[color].c); - XRenderComposite (disp, PictOpOver, solid_color_pict, None, dst, 0, 0, 0, 0, x, y, w, h); - done = true; - } + Picture solid_color_pict = XftDrawSrcPicture (d, &term->pix_colors[color].c); + XRenderComposite (disp, PictOpOver, solid_color_pict, None, dst, 0, 0, 0, 0, x, y, w, h); } + else # endif - if (!done) XftDrawRect (d, &term->pix_colors[color].c, x, y, w, h); #else