Wrong information in WM standard

Frank Schmitt ich at frank-schmitt.net
Wed Oct 29 03:03:17 PDT 2008


Hello,

When you look at
http://standards.freedesktop.org/wm-spec/latest/ar01s05.html#id2569669
it clearly states, that each pixel is represented by a 32 bit
integer. In fact the data type is however CARDINAL. CARDINAL is long and
long is 64 bit under Linux and therefore if you do something like

 UINT32* buffer = (UINT32*)malloc((16*16+2)*4);
 buffer[0]=w;
 buffer[1]=h;
 memset(buffer+2,0,16*16*4);
 XChangeProperty(dpy, top, net_wm_icon, cardinal, 32,
 PropModeReplace, (const unsigned char*) buffer, 2+16*16);

you get a transparent icon under 32 bit but not under 64 bit
systems. There buffer must be from a 64 bit type which contradicts the
standard.

Further on, it is totally unclear to what happens when your xserver is
on a 32 bit system and the client on a 64 bit system or vice versa.

Yours,
Frank

-- 
Have you ever considered how much text can fit in eighty columns?  Given that a
signature typically contains up to four lines of text, this space allows you to
attach a tremendous amount of valuable information to your messages.  Seize the
opportunity and don't waste your signature on bullshit that nobody cares about.


More information about the xdg mailing list