--- rxvt-unicode/src/rxvtfont.C 2006/02/20 22:42:00 1.98 +++ rxvt-unicode/src/rxvtfont.C 2006/03/11 00:33:23 1.101 @@ -1276,12 +1276,14 @@ int w = term->fwidth * len; int h = term->fheight; - bool buffered = 0 -#if defined(XPM_BACKGROUND) || defined(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 +# endif #endif - || bg >= 0; // we don't use a transparent bg + ; // cut trailing spaces while (len && text [len - 1] == ' ') @@ -1324,7 +1326,9 @@ #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); + XCopyArea (disp, term->pixmap, d2, gc, + x + term->window_vt_x, y + term->window_vt_y, + w, h, 0, 0); else if (bg < 0 && term->bgPixmap.pixmap) { XGCValues gcv;