diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-10-14 04:21:42 +0930 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-10-16 11:30:59 +0930 |
commit | 38baac71bdbb8c7e882e3e39133615cfed894a6b (patch) | |
tree | 1537f6793402f5299b01314a7add2b82b872c1eb | |
parent | 70efd3d06a15093661933bda4ec21e306dece4a4 (diff) |
dix: Set bidirectional pairing, don't allow pairing with already paired devs.
-rw-r--r-- | dix/devices.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/dix/devices.c b/dix/devices.c index 2dd3f9e5e..7be0d6941 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2238,7 +2238,10 @@ PairDevices(ClientPtr client, DeviceIntPtr ptr, DeviceIntPtr kbd) return BadDevice; /* Don't allow pairing for slave devices */ - if (ptr->master || kbd->master) + if (!ptr->isMaster || !kbd->isMaster) + return BadDevice; + + if (ptr->spriteInfo->paired) return BadDevice; if (!pairingClient) @@ -2255,6 +2258,7 @@ PairDevices(ClientPtr client, DeviceIntPtr ptr, DeviceIntPtr kbd) kbd->spriteInfo->sprite = ptr->spriteInfo->sprite; kbd->spriteInfo->paired = ptr; + ptr->spriteInfo->paired = kbd; return Success; } |