summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Xi/exevents.c3
-rw-r--r--mi/mieq.c2
2 files changed, 4 insertions, 1 deletions
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