Don't set explicit repeat masks when derived 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>
diff --git a/src/xkbcomp/compat.c b/src/xkbcomp/compat.c
index 4765da4..b256431 100644
--- a/src/xkbcomp/compat.c
+++ b/src/xkbcomp/compat.c
@@ -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;