darcs patch: Changing Int to CInt and building with
-D_XSERVER64 (w...
the Edward Blevins
thedward at antejentacular.org
Thu Mar 29 09:09:16 EDT 2007
On Thu, Mar 29, 2007 at 06:35:48PM +1000, Chris Mears wrote:
> > I am not sure if defining _XSERVER64 is the right fix. The Xlib headers
> > say that: [blah, blah]
You are absolutely correct. In retrospect, it seems more obvious.
> An update: I turned off _XSERVER64 and my windows were properly managed
> again. However, an old bug returned: key modifiers are reported
> incorrectly. I have found the source of this error.
That is exactly the initial problem I was trying to solve.
> The problem is that, in the KeyEvent data type, the "state" member has
> type "Mask" (64 bits). But in the C Xlib headers, the "state" member of
> the struct in unsigned int (32 bits)! This mucks everything up, in
> particular, the peek offsets.
>
> The fix is to use CUInt instead of Modifier or Mask for that value. I
> have hacked up a patch, but I will need to clean it up before posting it
> here. It requires changes to X11 and X11-extras.
That was actually my first fix, but the other thing seemed more clever
at the time.
Please do send it to the list; The sooner that happens, the less likely
people are to remember that my fixes caused additional problems. :)
> So, now Xmonad appears to behave correctly.
Yay! It was working fine for me. Except for when I restarted it and
windows went missing, which I hadn't connected with my changes, as
I couldn't use it at all before I made them. :)
Thanks a bunch for digging into this some more.
This is why I love free software. I do a half-assed hack to make
something go, and then someone else comes along and fixes it to
make it work even better.
--
the Edward Blevins <thedward at antejentacular.org> (512) 796-6661
Today is Pungenday, the 15th day of Discord in the YOLD 3173
More information about the Libraries
mailing list