--- rxvt-unicode/src/rxvtfont.C 2008/01/23 14:18:19 1.140 +++ rxvt-unicode/src/rxvtfont.C 2008/01/25 10:54:54 1.144 @@ -1306,7 +1306,6 @@ #ifdef FORCE_UNBUFFERED_XFT buffered = false; #endif - buffered=false;//D // cut trailing spaces while (len && text [len - 1] == ' ') @@ -1348,7 +1347,7 @@ rxvt_drawable &d2 = d.screen->scratch_drawable (w, h); #ifdef HAVE_BG_PIXMAP - Picture dst = 0; + Picture dst = 0; // the only assignment is done conditionally in the following if condition if (term->bgPixmap.pixmap && (bg == Color_transparent || bg == Color_bg @@ -1391,12 +1390,13 @@ { Picture solid_color_pict = XftDrawSrcPicture (d2, &term->pix_colors[bg].c); + // dst can only be set when bg >= 0 XRenderComposite (disp, PictOpOver, solid_color_pict, None, dst, 0, 0, 0, 0, 0, 0, w, h); } } else #endif - clear_rect (d, x, y, w, h, bg); + XftDrawRect (d2, &term->pix_colors[bg >= 0 ? bg : Color_bg].c, 0, 0, w, h); XftDrawGlyphSpec (d2, &term->pix_colors[fg].c, f, enc, ep - enc); XCopyArea (disp, d2, d, gc, 0, 0, w, h, x, y);