diff --git a/dix/devices.c b/dix/devices.c index 9e29f011c..58c29ab9e 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2697,11 +2697,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); }