summaryrefslogtreecommitdiff
path: root/Xi/exevents.c
diff options
context:
space:
mode:
authorChris Dekter <cdekter@gmail.com>2010-02-11 16:34:09 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2010-02-22 12:04:28 +1000
commit122fc0e7a0712df4ec2bd9ca6773f90bcd2095cf (patch)
treebdc79853a12460f5261d2df21b4469601d8cfc25 /Xi/exevents.c
parent4e8bf12b13690afa6d9fee0e339d3819ef16fb3f (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.c13
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)