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.
This commit is contained in:
Paulo Ricardo Zanoni 2007-04-26 15:58:50 +09:30 committed by Peter Hutterer
commit 82f97e1c0c
16 changed files with 143 additions and 100 deletions

View file

@ -357,7 +357,7 @@ extern Bool IsParent(
WindowPtr /* maybeparent */,
WindowPtr /* child */);
extern WindowPtr GetCurrentRootWindow(void);
extern WindowPtr GetCurrentRootWindow(DeviceIntPtr pDev);
extern WindowPtr GetSpriteWindow(DeviceIntPtr pDev);

View file

@ -287,6 +287,18 @@ typedef struct {
WindowPtr windows[MAXSCREENS];
WindowPtr confineWin; /* confine window */
#endif
/* The window trace information is used at dix/events.c to avoid having
* to compute all the windows between the root and the current pointer
* window each time a button or key goes down. The grabs on each of those
* windows must be checked.
* spriteTraces should only be used at dix/events.c! */
WindowPtr *spriteTrace;
int spriteTraceSize;
int spriteTraceGood;
ScreenPtr pEnqueueScreen; /* screen events are being delivered to */
ScreenPtr pDequeueScreen; /* screen events are being dispatched to */
} SpriteRec, *SpritePtr;
/* states for devices */