[PATCH] xkb: Fix ISOLock

Daniel Stone daniel at fooishbar.org
Mon Mar 24 16:52:40 PDT 2014


Hi,

On 24 March 2014 20:53,  <wettstein509 at solnet.ch> 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


More information about the xorg-devel mailing list