On Mon, 16 Jan 2012 at 19:22:14 -0500, GhostlyDeath wrote: > On my PowerPC Debian Squeeze System, the icons are colored > incorrectly. This patch removes the swapping of the data on Big Endian > systems, thus causing the icons to be colored correctly. > > Please check the patch on your big endian systems and see if it either > fixes or breaks things. It may only be applicable to Debian Squeeze > systems possibly. > > If the attachment does not work, here is the cat of the patch: > > From f16fc0a89f1bf08b4eac98e3d905a6e13f929cfb Mon Sep 17 00:00:00 2001 > From: GhostlyDeath <[email protected]> > Date: Mon, 16 Jan 2012 19:00:16 -0500 > Subject: [PATCH] Remove endian swap for icon image data. > > The data appears to already be in the native endian format.
I think that in the case where your icons were being displayed wrongly, they were being set from the _NET_WM_ICON hint. Because on http://standards.freedesktop.org/wm-spec/1.3/ar01s05.html you see under _NET_WM_ICON that This is an array of 32bit packed CARDINAL ARGB with high byte being A, low byte being B. which is little-endian for RGBA, see http://en.wikipedia.org/wiki/RGBA_color_space So if the above makes sense, does that mean that your icons will not display correctly if they are being set from anything other than _NET_WM_ICON? For example, if you set the icon manually to some .xpm. I didn't check if this function is called in those cases, though. > --- > src/wmspec.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/src/wmspec.c b/src/wmspec.c > index 95985db..1b4cf03 100644 > --- a/src/wmspec.c > +++ b/src/wmspec.c > @@ -404,7 +404,7 @@ static RImage *makeRImageFromARGBData(unsigned long *data) > > for (imgdata = image->data, i = 2; i < size + 2; i++, imgdata += 4) { > pixel = data[i]; > -#if BYTE_ORDER == BIG_ENDIAN > +#if 0//BYTE_ORDER == BIG_ENDIAN > imgdata[2] = (pixel >> 24) & 0xff; /* A */ > imgdata[1] = (pixel >> 16) & 0xff; /* R */ > imgdata[0] = (pixel >> 8) & 0xff; /* G */ > -- > 1.7.2.5 -- To unsubscribe, send mail to [email protected].
