mi: force the paired kbd device before CopyKeyClass. (#19574)

Some multi-media keyboards send the key events for multimedia keys through
the device file used by the mouse. Sending a key event through the VCP
however will fail. The VCP doesn't have a key class so the server crashes or
(with an appropriate fix) the event is simply swallowed.

Thus, for key events if the master does not have a key class, get the device
paired with the master (i.e. the VCK) before processing the event any
further.

X.Org Bug 19574 <http://bugs.freedesktop.org/show_bug.cgi?id=19574>

Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Keith Packard 2009-02-17 18:57:13 -08:00
parent a9dd41de7e
commit 7fdaca6446

View File

@ -451,7 +451,11 @@ mieqProcessInputEvents(void)
is transferred. */
if (event->u.u.type == DeviceKeyPress ||
event->u.u.type == DeviceKeyRelease)
{
if (!master->key)
master = GetPairedDevice(master);
CopyKeyClass(dev, master);
}
CopyGetMasterEvent(master, dev, event, masterEvents, nevents);
}