[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