--- rxvt-unicode/src/rxvttoolkit.C 2005/07/13 00:51:25 1.15 +++ rxvt-unicode/src/rxvttoolkit.C 2005/08/11 02:05:07 1.18 @@ -152,7 +152,6 @@ strcpy (val, "unix/"); strcat (val, id); display = XOpenDisplay (val); - printf ("OD %s => %p\n", val, display);//D free (val); } else @@ -161,7 +160,6 @@ if (!display) display = XOpenDisplay (id); - printf ("O2 %s => %p\n", id, display);//D if (!display) return false; @@ -175,7 +173,7 @@ int fd = XConnectionNumber (display); #ifndef NO_SLOW_LINK_SUPPORT - // try to detetc wether we have a local connection. + // try to detect wether we have a local connection. // assume unix domains socket == local, everything else not // TODO: might want to check for inet/127.0.0.1 is_local = 0; @@ -478,14 +476,43 @@ rxvt_color rxvt_color::fade (rxvt_display *display, int percent) { + percent = 100 - percent; + unsigned short cr, cg, cb; rxvt_color faded; get (display, cr, cg, cb); - faded.set (display, - cr * percent / 100, - cg * percent / 100, - cb * percent / 100); + + faded.set ( + display, + cr * percent / 100, + cg * percent / 100, + cb * percent / 100 + ); + + return faded; +} + +#define LERP(a,b,p) (a * p / 100 + b * (100 - p) / 100) + +rxvt_color +rxvt_color::fade (rxvt_display *display, int percent, rxvt_color &fadeto) +{ + percent = 100 - percent; + + unsigned short cr, cg, cb; + unsigned short fcr, fcg, fcb; + rxvt_color faded; + + get (display, cr, cg, cb); + fadeto.get(display, fcr, fcg, fcb); + + faded.set ( + display, + LERP (cr, fcr, percent), + LERP (cg, fcg, percent), + LERP (cb, fcb, percent) + ); return faded; }