GKVE: don't repeat modifiers when using XKB
Make sure we don't ever repeat modifiers (previously was repeating when using XKB); only do explicit KP/KR repeats in the non-XKB case. XKB will take care of repeating when we're using it.
This commit is contained in:
parent
9f188416bb
commit
3832a3d7db
12
dix/events.c
12
dix/events.c
|
@ -4737,21 +4737,23 @@ int GetKeyboardValuatorEvents(xEvent *events, DeviceIntPtr pDev, int type,
|
|||
* FIXME: In theory, if you're repeating with two keyboards,
|
||||
* you could get unbalanced events here. */
|
||||
if (type == KeyPress &&
|
||||
((pDev->key->down[key_code >> 3] & (key_code & 7)) & 1)
|
||||
#ifdef XKB
|
||||
&& noXkbExtension
|
||||
#endif
|
||||
) {
|
||||
((pDev->key->down[key_code >> 3] & (key_code & 7)) & 1)) {
|
||||
if (!pDev->kbdfeed->ctrl.autoRepeat ||
|
||||
pDev->key->modifierMap[key_code] ||
|
||||
!(pDev->kbdfeed->ctrl.autoRepeats[key_code >> 3]
|
||||
& (1 << (key_code & 7))))
|
||||
return 0;
|
||||
|
||||
#ifdef XKB
|
||||
if (noXkbExtension)
|
||||
#endif
|
||||
{
|
||||
numEvents += GetKeyboardValuatorEvents(events, pDev,
|
||||
KeyRelease, key_code,
|
||||
num_valuators, valuators);
|
||||
events += numEvents;
|
||||
}
|
||||
}
|
||||
|
||||
ms = GetTimeInMillis();
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user