--- rxvt-unicode/src/rxvtfont.C 2006/02/18 15:24:39 1.96 +++ rxvt-unicode/src/rxvtfont.C 2006/03/11 00:12:37 1.100 @@ -1,4 +1,4 @@ -/*--------------------------------*-C-*---------------------------------* +/*----------------------------------------------------------------------* * File: rxvtfont.C *----------------------------------------------------------------------* * Copyright (c) 2003-2006 Marc Lehmann @@ -1276,9 +1276,14 @@ int w = term->fwidth * len; int h = term->fheight; - bool buffered = !term->am_transparent // we aren't transparent + bool buffered = bg >= 0 // we don't use a transparent bg +#ifndef FORCE_UNBUFFERED_XFT +# if defined(XPM_BACKGROUND) || defined(TRANSPARENT) + || !term->am_transparent // we aren't transparent || term->am_pixmap_trans // we have a pixmap - || bg >= 0; // we don't use a transparent bg +# endif +#endif + ; // cut trailing spaces while (len && text [len - 1] == ' ') @@ -1319,6 +1324,7 @@ { rxvt_drawable &d2 = d.screen->scratch_drawable (w, h); +#if defined(XPM_BACKGROUND) || defined(TRANSPARENT) if (bg < 0 && term->am_pixmap_trans) XCopyArea (disp, term->pixmap, d2, gc, x, y, w, h, 0, 0); else if (bg < 0 && term->bgPixmap.pixmap) @@ -1339,6 +1345,7 @@ XFreeGC (disp, gc2); } else +#endif XftDrawRect (d2, &term->pix_colors[bg].c, 0, 0, w, h); XftDrawGlyphSpec (d2, &term->pix_colors[fg].c, f, enc, ep - enc);