summaryrefslogtreecommitdiff
path: root/XTrap
diff options
context:
space:
mode:
authorPaulo Ricardo Zanoni <prz05@c3sl.ufpr.br>2007-04-26 15:58:50 +0930
committerPeter Hutterer <peter@cs.unisa.edu.au>2007-04-26 15:58:50 +0930
commit82f97e1c0cc15b050edc82a8f3b9a423d6cf5fe7 (patch)
tree6f9c7205f391c65ef8076736abc3cb135ce19d88 /XTrap
parentd61ed6c8a2823a3532439d5cb9f355129c93f523 (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.c6
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;