diff --git a/Xi/exevents.c b/Xi/exevents.c index 327873e29..b39e202ff 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -710,6 +710,9 @@ ChangeMasterDeviceClasses(DeviceIntPtr device, DeviceChangedEvent *dce) if (rc != Success) return; /* Device has disappeared */ + if (IsMaster(slave)) + return; + if (!slave->u.master) return; /* set floating since the event */ diff --git a/mi/mieq.c b/mi/mieq.c index 01da52a6c..c0020c3c3 100644 --- a/mi/mieq.c +++ b/mi/mieq.c @@ -325,7 +325,7 @@ CopyGetMasterEvent(DeviceIntPtr sdev, CHECKEVENT(original); /* ET_XQuartz has sdev == NULL */ - if (!sdev || !sdev->u.master) + if (!sdev || IsMaster(sdev) || !sdev->u.master) return NULL; #if XFreeXDGA