Hi, On 24 March 2014 20:53, <[email protected]> wrote: > That is a long way, I am afraid. To demonstrate the correctness of the > X-server implementation by means of a libxkbcommon implementation, the > implementations and the environment they live in must be equivalent. > Even though the structure in src/state.c is very similar to that in > xkbActions.c, there are differences:
Right you are. Sadly they are separate codebases, as one of the things that made xkbcommon practical was specifying that keymaps must be immutable. > 1. As far as I can see, libxkbcommon does not handle group latches, > set/lock controls, and button actions. That is half of the actions > affected by ISOLock. True. > 2. Autorepeat handling is completely different. libxkbcommon seems to > assume that it does receive balanced press/release events (this is > what I gather from reference count handling). In the X-server, > autorepeating key presses have no matching releases. Autorepeat is separate in that xkbcommon only specifies which keys should autorepeat; it doesn't provide autorepeat intrinsically. > 3. Modifier latch handling in libxkbcommon is quite different to what is > now in the X-server, and looks suspicious: > - Autorepeat handling is missing. If I am right about how autorepeat > in libxkbcommon works, there is no way to tell autorepeat from > regular presses/releases. Is autorepeat handling even possible? > - Base modifiers can get stuck. The same issue used to be in the > X-server, see http://patchwork.freedesktop.org/patch/13192/. xkbcommon expects to not handle repeat events at all. I'll have to take a look at the server patch (xkbcommon was developed from the xserver/xkb/ base before your changes) and see if it still makes sense. Cheers, Daniel _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
