diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2009-09-16 15:46:55 +1000 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2009-09-27 19:08:14 -0700 |
commit | a26fd1a6d61507b3e69a04d6f6c192a6ec363c5c (patch) | |
tree | c3923d7ec36caadb663239f4ccf49a18bcb70272 | |
parent | 507e57381fea6334f7dc8da6925e53d2c76fddcb (diff) |
Don't send events through the master if the device has SendCoreEvents off.
In server 1.6, all devices are attached to the master device (VCP or VCK).
Sending an event through the master device means the device is sending core
events. If a device is configured as SendCoreEvents, just send through the
device, not through the master.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | dix/getevents.c | 4 | ||||
-rw-r--r-- | mi/mieq.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/dix/getevents.c b/dix/getevents.c index 9747b35a6..eadcbeb48 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -536,7 +536,7 @@ static EventListPtr updateFromMaster(EventListPtr events, DeviceIntPtr dev, int *num_events) { DeviceIntPtr master = dev->u.master; - if (master && master->u.lastSlave != dev) + if (master && master->u.lastSlave != dev && dev->coreEvents) { updateSlaveDeviceCoords(master, dev); master->u.lastSlave = dev; @@ -674,7 +674,7 @@ positionSprite(DeviceIntPtr dev, int *x, int *y, * to the current screen. */ miPointerSetPosition(dev, &dev->last.valuators[0], &dev->last.valuators[1]); - if (dev->u.master) { + if (dev->u.master && dev->coreEvents) { dev->u.master->last.valuators[0] = dev->last.valuators[0]; dev->u.master->last.valuators[1] = dev->last.valuators[1]; } @@ -446,7 +446,7 @@ mieqProcessInputEvents(void) NewCurrentScreen (dev, DequeueScreen(dev), x, y); } else { - if (master) { + if (master && dev->coreEvents) { /* Force a copy of the key class into the VCK so that the layout is transferred. */ if (event->u.u.type == DeviceKeyPress || @@ -473,7 +473,7 @@ mieqProcessInputEvents(void) /* process slave first, then master */ dev->public.processInputProc(event, dev, nevents); - if (master) + if (master && dev->coreEvents) master->public.processInputProc(masterEvents->event, master, nevents); } |