Red Hat Bugzilla – Bug 197168
problem with wm hints on x86_64
Last modified: 2014-06-18 03:35:21 EDT
I've noticed that on x86_64, that when the xwrits window pops up, it's not
movable, whereas on i386 it is. The problem seems to be in how WM hints are
handled. When I comment this out of hands.c:
/* window manager properties, including GNOME/KDE hints */
XChangeProperty(port->display, nh->w, port->mwm_hints_atom,
port->mwm_hints_atom, 32, PropModeReplace,
(unsigned char *)mwm_hints, 4);
the problem goes away. mwm_hints gets set via bit shifts of long ints, so the
problem may be with word size differences.
The same problem seems to occur regardless of window manager, so I don't think
it's a wm bug (unless they all have the same bug).
Ok, I think this may have something to do with it. The 5 arg to that statement
format Specifies whether the data should be viewed as a list of
8-bit, 16-bit, or 32-bit quantities. Possible values are 8,
16, and 32. This information allows the X server to cor-
rectly perform byte-swap operations as necessary. If the
format is 16-bit or 32-bit, you must explicitly cast your
data pointer to an (unsigned char *) in the call to XChange-
In the code, however, we're setting these to 64-bit values on x86_64 and 32-bit
on i386. Since both i386 and x86_64 have 4-byte int sizes, however, the best way
to fix this is probably to make it just use regular ints here.
Actually, I think I'm wrong (and was looking at this wrong). Changing the mwm
bit shifts to use "1" instead of "1L" does't make any difference in the final
contents of the array. So this may be a WM bug after all...
Created attachment 131754 [details]
The problem seems to be that on 64-bit platforms, window managers seem to
expect that hints come in an array of 64-bit integers. The attached patch seems
to correct this problem on x86_64, but does not break i386 (I've not been able
to test ppc).
I'd like to run this by the author before incorporating it.
Created attachment 131767 [details]
There's a new upstream version that made an attempt to fix this, but it doesn't
seem to. This patch, however, seems to fix it. Untested as of yet on i386.
Created attachment 132155 [details]
xwrits patch included in 2.24
Thanks for the patch Jeff. I looked over the patch and did some digging to try
to understand the X property issues that were causing problems. Now I've got
it, I think, and release 2.24 will contain the patch above.
FC5 and devel packages updated to 2.24. Closing...