diff options
author | Chris Dekter <cdekter@gmail.com> | 2010-02-11 16:34:09 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2010-02-22 12:04:28 +1000 |
commit | 122fc0e7a0712df4ec2bd9ca6773f90bcd2095cf (patch) | |
tree | bdc79853a12460f5261d2df21b4469601d8cfc25 /Xi/exevents.c | |
parent | 4e8bf12b13690afa6d9fee0e339d3819ef16fb3f (diff) |
Re-enable RECORD extension.
RECORD was disabled during the switch to internal events. This patch
modifies the record callback to work with internal events instead of
xEvents. The InternalEvents are converted to core/Xi events as needed.
Since record is a loadable extension, the EventTo* calls must be externed.
Signed-off-by: Chris Dekter <cdekter@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'Xi/exevents.c')
-rw-r--r-- | Xi/exevents.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Xi/exevents.c b/Xi/exevents.c index ee32ba895..a63b65b6b 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1051,16 +1051,19 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device) break; } -#if 0 - /* FIXME: I'm broken. Please fix me. Thanks */ if (DeviceEventCallback) { DeviceEventInfoRec eventinfo; + SpritePtr pSprite = device->spriteInfo->sprite; - eventinfo.events = (xEventPtr) xE; - eventinfo.count = 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; + + eventinfo.device = device; + eventinfo.event = ev; CallCallbacks(&DeviceEventCallback, (pointer) & eventinfo); } -#endif + grab = device->deviceGrab.grab; switch(event->type) |