I continued Chris's git-bisect (the build errors were pretty easy to fix, much easier than getting X to build at all and getting compiz to run on top of it). The issue manifested itself in a slightly different manner for me - the X server hung instead of auto-repeating, but I assume it's the same problem. Anyway, this seems to be the commit that is causing the trouble:
# bad: [83e76fb3f7a89a237893c2b7df450d4f90eab52d] Save processInputProc before wrapping it and restore it later, instead of using a hardcoded ProcessKeyboardEvent. Otherwise we lose the ability to process DeviceKeyEvents after the first key press.
The attached patch reverses this commit on the current hardy X server (there were a few additional occurrences of UNWRAP_PROCESS_INPUT_PROC, but those could be dealt with in a completely analogous way).
I continued Chris's git-bisect (the build errors were pretty easy to fix, much easier than getting X to build at all and getting compiz to run on top of it). The issue manifested itself in a slightly different manner for me - the X server hung instead of auto-repeating, but I assume it's the same problem. Anyway, this seems to be the commit that is causing the trouble:
# bad: [83e76fb3f7a89a 237893c2b7df450 d4f90eab52d] Save processInputProc before wrapping it and restore it later, instead of using a hardcoded ProcessKeyboard Event. Otherwise we lose the ability to process DeviceKeyEvents after the first key press.
The attached patch reverses this commit on the current hardy X server (there were a few additional occurrences of UNWRAP_ PROCESS_ INPUT_PROC, but those could be dealt with in a completely analogous way).