aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/xkb/xkbAccessX.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/xkb/xkbAccessX.c')
-rw-r--r--xorg-server/xkb/xkbAccessX.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/xorg-server/xkb/xkbAccessX.c b/xorg-server/xkb/xkbAccessX.c
index 47023c048..fd30a1ce7 100644
--- a/xorg-server/xkb/xkbAccessX.c
+++ b/xorg-server/xkb/xkbAccessX.c
@@ -524,10 +524,14 @@ KeySym * sym = XkbKeySymsPtr(xkbi->desc,key);
if (BitIsOn(keybd->kbdfeed->ctrl.autoRepeats,key)) {
if (xkbDebugFlags&0x10)
DebugF("Starting software autorepeat...\n");
- xkbi->repeatKey = key;
- xkbi->repeatKeyTimer= TimerSet(xkbi->repeatKeyTimer,
- 0, ctrls->repeat_delay,
- AccessXRepeatKeyExpire, (pointer)keybd);
+ if (xkbi->repeatKey == key)
+ ignoreKeyEvent = TRUE;
+ else {
+ xkbi->repeatKey = key;
+ xkbi->repeatKeyTimer= TimerSet(xkbi->repeatKeyTimer,
+ 0, ctrls->repeat_delay,
+ AccessXRepeatKeyExpire, (pointer)keybd);
+ }
}
}
}