diff options
Diffstat (limited to 'xorg-server/Xi')
-rw-r--r-- | xorg-server/Xi/exevents.c | 40 | ||||
-rw-r--r-- | xorg-server/Xi/setmode.c | 10 |
2 files changed, 20 insertions, 30 deletions
diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c index 7c105eb94..a63b65b6b 100644 --- a/xorg-server/Xi/exevents.c +++ b/xorg-server/Xi/exevents.c @@ -1052,38 +1052,18 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device) } if (DeviceEventCallback) { - DeviceEventInfoRec eventinfo; - SpritePtr pSprite = device->spriteInfo->sprite; - xEvent *xi_events = NULL; - int count; - - /* see comment in EnqueueEvents regarding the next three lines */ - if (ev->any.type == ET_Motion) - ev->device_event.root = - WindowTable[pSprite->hotPhys.pScreen->myNum]->drawable.id; - - /* SDs send XI events only. MDs send both an XI event and a core - * event. - */ - EventToXI(ev, &xi_events, &count); - - eventinfo.events = (xEventPtr)xi_events; - eventinfo.count = count; - ErrorF("POE xi root is %lx\n", xi_events->u.keyButtonPointer.root); - CallCallbacks(&DeviceEventCallback, (pointer) & eventinfo); - xfree(xi_events); - - if (IsMaster(device)) - { - xEvent core; - EventToCore(ev, &core); - eventinfo.events = (xEventPtr)&core; - eventinfo.count = 1; - ErrorF("POE core root is %lx\n", core.u.keyButtonPointer.root); - CallCallbacks(&DeviceEventCallback, (pointer) & eventinfo); - } + DeviceEventInfoRec eventinfo; + SpritePtr pSprite = device->spriteInfo->sprite; + /* see comment in EnqueueEvents regarding the next three lines */ + if (ev->any.type == ET_Motion) + ev->device_event.root = WindowTable[pSprite->hotPhys.pScreen->myNum]->drawable.id; + + eventinfo.device = device; + eventinfo.event = ev; + CallCallbacks(&DeviceEventCallback, (pointer) & eventinfo); } + grab = device->deviceGrab.grab; switch(event->type) diff --git a/xorg-server/Xi/setmode.c b/xorg-server/Xi/setmode.c index 51e57675f..ce2ad47c7 100644 --- a/xorg-server/Xi/setmode.c +++ b/xorg-server/Xi/setmode.c @@ -112,7 +112,17 @@ ProcXSetDeviceMode(ClientPtr client) if (rep.status == Success) dev->valuator->mode = stuff->mode; else if (rep.status != AlreadyGrabbed) + { + switch(rep.status) { + case BadMatch: + case BadImplementation: + case BadAlloc: + break; + default: + rep.status = BadMode; + } return rep.status; + } WriteReplyToClient(client, sizeof(xSetDeviceModeReply), &rep); return Success; |