diff --git a/dix/devices.c b/dix/devices.c index 48f701be3..b4b15a159 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2699,11 +2699,14 @@ AttachDevice(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr master) dev->spriteInfo->paired = dev; } else { + DeviceIntPtr keyboard = GetMaster(dev, MASTER_KEYBOARD); + dev->spriteInfo->sprite = master->spriteInfo->sprite; dev->spriteInfo->paired = master; dev->spriteInfo->spriteOwner = FALSE; - XkbPushLockedStateToSlaves(GetMaster(dev, MASTER_KEYBOARD), 0, 0); + if (keyboard) + XkbPushLockedStateToSlaves(keyboard, 0, 0); RecalculateMasterButtons(master); }