--- rxvt-unicode/src/rxvtfont.C 2008/01/23 15:00:21 1.143 +++ rxvt-unicode/src/rxvtfont.C 2008/02/21 13:45:28 1.149 @@ -1,7 +1,7 @@ /*----------------------------------------------------------------------* * File: rxvtfont.C *----------------------------------------------------------------------* - * Copyright (c) 2003-2006 Marc Lehmann + * Copyright (c) 2003-2008 Marc Lehmann * - original version. * * This program is free software; you can redistribute it and/or modify @@ -1135,7 +1135,7 @@ #if 0 // clipping unfortunately destroys our precious double-width-characters // clip width, we can't do better, or can we? if (FcPatternGet (p, FC_CHAR_WIDTH, 0, &v) != FcResultMatch) - FcPatternAddInteger (p, FC_CHAR_WIDTH, prop->width); + FcPatternAddInteger (p, FC_CHAR_WIDTH, prop.width); #endif if (FcPatternGet (p, FC_MINSPACE, 0, &v) != FcResultMatch) @@ -1298,14 +1298,8 @@ int w = term->fwidth * len; int h = term->fheight; - /* - * 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 >= Color_transparent; -#ifdef FORCE_UNBUFFERED_XFT - buffered = false; -#endif + bool buffered = bg >= Color_transparent + && term->option (Opt_buffered); // cut trailing spaces while (len && text [len - 1] == ' ') @@ -1347,7 +1341,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 @@ -1390,6 +1384,7 @@ { 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); } }