Don't set explicit repeat masks when derived
authorDaniel Stone <daniel@fooishbar.org>
Fri, 22 Jun 2012 15:08:05 +0000 (16:08 +0100)
committerDaniel Stone <daniel@fooishbar.org>
Fri, 22 Jun 2012 15:08:05 +0000 (16:08 +0100)
If we've only derived that a key should repeat, rather than had it
explicitly specified, don't set the explicit member.  Fixes the dump
test.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
src/xkbcomp/compat.c

index 4765da4..b256431 100644 (file)
@@ -986,10 +986,8 @@ ApplyInterpsToKey(struct xkb_keymap *keymap, xkb_keycode_t key)
             /* Infer default key behaviours from the base level. */
             if (group == 0 && level == 0) {
                 if (!(keymap->server->explicit[key] & XkbExplicitAutoRepeatMask) &&
-                    (!interp || interp->flags & XkbSI_AutoRepeat)) {
+                    (!interp || interp->flags & XkbSI_AutoRepeat))
                         keymap->ctrls->per_key_repeat[key / 8] |= (1 << (key % 8));
-                    keymap->server->explicit[key] |= XkbExplicitAutoRepeatMask;
-                }
                 if (!(keymap->server->explicit[key] & XkbExplicitBehaviorMask) &&
                     interp && (interp->flags & XkbSI_LockingKey))
                     keymap->server->behaviors[key].type = XkbKB_Lock;