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]; } diff --git a/mi/mieq.c b/mi/mieq.c index 213ad5b40..478e68b7e 100644 --- a/mi/mieq.c +++ b/mi/mieq.c @@ -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); }