xkb: Fix a check for MASTER_KEYBOARD

And copy into the master keyboard, not just the directly attached device.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Benjamin Tissoires <tissoire@cena.fr>
This commit is contained in:
Peter Hutterer 2011-02-18 12:06:56 +10:00
parent 0ba526deeb
commit 2936635698

View File

@ -5883,12 +5883,10 @@ ProcXkbGetKbdByName(ClientPtr client)
nkn.changed|= XkbNKN_GeometryMask; nkn.changed|= XkbNKN_GeometryMask;
XkbSendNewKeyboardNotify(dev,&nkn); XkbSendNewKeyboardNotify(dev,&nkn);
if (!IsMaster(dev) && !IsFloating(dev)) if (!IsMaster(dev)) {
{ DeviceIntPtr master = GetMaster(dev, MASTER_KEYBOARD);
DeviceIntPtr master = dev->u.master; if (master && master->u.lastSlave == dev) {
if (master->u.lastSlave == dev) XkbCopyDeviceKeymap(master, dev);
{
XkbCopyDeviceKeymap(dev->u.master, dev);
XkbSendNewKeyboardNotify(dev,&nkn); XkbSendNewKeyboardNotify(dev,&nkn);
} }
} }