--- rxvt-unicode/src/rxvttoolkit.C 2006/08/18 23:03:31 1.63 +++ rxvt-unicode/src/rxvttoolkit.C 2007/02/12 19:26:10 1.64 @@ -709,12 +709,9 @@ if (screen->visual->c_class == TrueColor) { - c.pixel = (color.r * (screen->visual->red_mask >> ctz (screen->visual->red_mask )) - / rgba::MAX_CC) << ctz (screen->visual->red_mask ) - | (color.g * (screen->visual->green_mask >> ctz (screen->visual->green_mask)) - / rgba::MAX_CC) << ctz (screen->visual->green_mask) - | (color.b * (screen->visual->blue_mask >> ctz (screen->visual->blue_mask )) - / rgba::MAX_CC) << ctz (screen->visual->blue_mask ); + c.pixel = (color.r >> (16 - popcount (screen->visual->red_mask )) << ctz (screen->visual->red_mask )) + | (color.g >> (16 - popcount (screen->visual->green_mask)) << ctz (screen->visual->green_mask)) + | (color.b >> (16 - popcount (screen->visual->blue_mask )) << ctz (screen->visual->blue_mask )); return true; }