-- Leo's gemini proxy
-- Connecting to git.thebackupbox.net:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini
repo: rxvt-unicode-sixel action: commit revision: path_from: revision_from: 31dec4f7dcb077ecad522de14a5027154cce87bc: path_to: revision_to:
commit 31dec4f7dcb077ecad522de14a5027154cce87bc Author: Sasha Vasko <sashavasko@gmail.com> Date: Thu Sep 20 15:32:34 2007 +0000 fixed clear_rect to properly blend semitransparent background colors in case of xft and background pixmap diff --git a/src/rxvtfont.C b/src/rxvtfont.C
--- a/src/rxvtfont.C +++ b/src/rxvtfont.C @@ -239,7 +239,22 @@ rxvt_font::clear_rect (rxvt_drawable &d, int x, int y, int w, int h, int color) else if (color >= 0) { #if XFT - XftDrawRect (d, &term->pix_colors[color].c, x, y, w, h); + bool done = false; +#ifdef HAVE_BG_PIXMAP + if (term->bgPixmap.pixmap && color >= 0 && term->pix_colors[color].c.color.alpha < 0x0ff00) + { + Picture dst = XftDrawPicture (d); + 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; + } + } +#endif + if (!done) + XftDrawRect (d, &term->pix_colors[color].c, x, y, w, h); #else XSetForeground (disp, gc, term->pix_colors[color]); XFillRectangle (disp, d, gc, x, y, w, h); @@ -1318,10 +1333,10 @@ rxvt_font_xft::draw (rxvt_drawable &d, int x, int y, if (buffered) { + bool back_rendered = false; if (ep != enc) { rxvt_drawable &d2 = d.screen->scratch_drawable (w, h); - bool back_rendered = false; #ifdef HAVE_BG_PIXMAP if (term->bgPixmap.pixmap)
-----END OF PAGE-----
-- Response ended
-- Page fetched on Sun Jun 2 09:58:58 2024