diff options
author | Paulo Ricardo Zanoni <prz05@c3sl.ufpr.br> | 2007-04-26 15:58:50 +0930 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-04-26 15:58:50 +0930 |
commit | 82f97e1c0cc15b050edc82a8f3b9a423d6cf5fe7 (patch) | |
tree | 6f9c7205f391c65ef8076736abc3cb135ce19d88 /XTrap | |
parent | d61ed6c8a2823a3532439d5cb9f355129c93f523 (diff) |
Enable event delivery for multiple heads.
Requires moving the spriteTrace into the DeviceIntRec and adjusting a few
functions to take in device argument, most notably XYToWindow().
Cursor rendering on the second screen is busted.
Diffstat (limited to 'XTrap')
-rw-r--r-- | XTrap/xtrapdi.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/XTrap/xtrapdi.c b/XTrap/xtrapdi.c index bc15bbd86..0b70d7b1d 100644 --- a/XTrap/xtrapdi.c +++ b/XTrap/xtrapdi.c @@ -102,7 +102,7 @@ globalref int_function XETrapProcVector[256L]; /* The "shadowed" ProcVector */ #ifndef VECTORED_EVENTS globalref int_function EventProcVector[XETrapCoreEvents]; #else -extern WindowPtr GetCurrentRootWindow(); +extern WindowPtr GetCurrentRootWindow(DeviceIntPtr); globalref int_function EventProcVector[128L]; #endif static int_function keybd_process_inp = NULL; /* Used for VECTORED_EVENTS */ @@ -1620,7 +1620,9 @@ int XETrapEventVector(ClientPtr client, xEvent *x_event) (x_event->u.u.type <= MotionNotify) && (!x_event->u.keyButtonPointer.sameScreen))) { /* we've moved/warped to another screen */ - WindowPtr root_win = GetCurrentRootWindow(); + /* XXX: we're getting the client's pointer root window. + * is this correct? Should it be the client's keyboard? */ + WindowPtr root_win = GetCurrentRootWindow(PickPointer(client)); current_screen = root_win->drawable.pScreen->myNum; } data.hdr.screen = current_screen; |