-- 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:

git.thebackupbox.net

rxvt-unicode-sixel

git://git.thebackupbox.net/rxvt-unicode-sixel

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

index 1934fad176aa2be0318d9d2071ea7e1ec6b900ae..

index ..ca673809ae3bf3193fc9e2a4fd46e501b3e3dda4 100644

--- 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