[RFC] xkb: processInputProc wrapping and FreezeThaw

Thomas Jaeger thjaeger at gmail.com
Thu Mar 27 21:55:40 PDT 2008

If FreezeThaw is called inside a UNWRAP_PROCESS_INPUT_PROC /
COND_WRAP_PROCESS_INPUT_PROC pair, the X server might be left in a
broken state.  This problem was addressed in commit
50e80c39870adfdc84fdbc00dddf1362117ad443 [1], but the workaround doesn't
cover all possible cases.  There is a bug that is fairly easy to
reproduce [2,3] where the server will autorepeat a key forever if it is
released under load and compiz is running.

The attached patch tries to offer a complete solution to the problem,
implemented as follows.  The UNWRAP/COND_WRAP macros set both
realInputProc and processInputProc, unless "regular" input processing is
suspended currently suspended (this is the case if processInputProc !=
realInputProc), in which case only realInputProc is updated.


[1] https://bugs.freedesktop.org/show_bug.cgi?id=13511
[2] https://bugs.freedesktop.org/show_bug.cgi?id=14449
[3] https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/194214

-------------- next part --------------
A non-text attachment was scrubbed...
Name: InputProc.diff
Type: text/x-diff
Size: 2476 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20080328/ab1ec487/attachment.diff>

More information about the xorg mailing list