From cd55eb71fe6f14b46d0432bfb3367e84c5138475 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Tue, 24 Jul 2007 01:36:47 +0200 Subject: [PATCH] Make the default window icon randomly tinted. --- openbox/client.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/openbox/client.c b/openbox/client.c index d1bdd163..cf33ac12 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -2142,6 +2142,10 @@ void client_update_icons(ObClient *self) if (!self->icon_set && !self->parents) { RrPixel32 *icon = ob_rr_theme->def_win_icon; gulong *ldata; /* use a long here to satisfy OBT_PROP_SETA32 */ + gint32 r,g,b; + r = g_random_int_range(0,255); + g = g_random_int_range(0,255); + b = g_random_int_range(0,255); w = ob_rr_theme->def_win_icon_w; h = ob_rr_theme->def_win_icon_h; @@ -2150,9 +2154,9 @@ void client_update_icons(ObClient *self) ldata[1] = h; for (i = 0; i < w*h; ++i) ldata[i+2] = (((icon[i] >> RrDefaultAlphaOffset) & 0xff) << 24) + - (((icon[i] >> RrDefaultRedOffset) & 0xff) << 16) + - (((icon[i] >> RrDefaultGreenOffset) & 0xff) << 8) + - (((icon[i] >> RrDefaultBlueOffset) & 0xff) << 0); + ((((icon[i] >> RrDefaultRedOffset) & 0xff)*r/255) << 16) + + ((((icon[i] >> RrDefaultGreenOffset) & 0xff)*g/255) << 8) + + ((((icon[i] >> RrDefaultBlueOffset) & 0xff)*b/255) << 0); OBT_PROP_SETA32(self->window, NET_WM_ICON, CARDINAL, ldata, w*h+2); g_free(ldata); } else if (self->frame) -- 2.34.1