Input: Make RootWindow() take a sprite instead of device

GetCurrentRootWindow already works for the device case, although not as
an lvalue.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
This commit is contained in:
Daniel Stone 2010-12-27 13:06:03 +00:00
parent 23c37ce1fe
commit 10d6c3ca10

View File

@ -256,7 +256,7 @@ EventSyncInfoRec syncEvents;
/** /**
* The root window the given device is currently on. * The root window the given device is currently on.
*/ */
#define RootWindow(dev) dev->spriteInfo->sprite->spriteTrace[0] #define RootWindow(sprite) sprite->spriteTrace[0]
static xEvent* swapEvent = NULL; static xEvent* swapEvent = NULL;
static int swapEventLen = 0; static int swapEventLen = 0;
@ -879,7 +879,7 @@ CheckVirtualMotion(
#ifdef PANORAMIX #ifdef PANORAMIX
if (noPanoramiXExtension) /* No typo. Only set the root win if disabled */ if (noPanoramiXExtension) /* No typo. Only set the root win if disabled */
#endif #endif
RootWindow(pDev) = pSprite->hot.pScreen->root; RootWindow(pDev->spriteInfo->sprite) = pSprite->hot.pScreen->root;
} }
static void static void
@ -1012,7 +1012,7 @@ PostNewCursor(DeviceIntPtr pDev)
WindowPtr WindowPtr
GetCurrentRootWindow(DeviceIntPtr dev) GetCurrentRootWindow(DeviceIntPtr dev)
{ {
return RootWindow(dev); return RootWindow(dev->spriteInfo->sprite);
} }
/** /**
@ -1511,7 +1511,7 @@ DeactivatePointerGrab(DeviceIntPtr mouse)
DoEnterLeaveEvents(mouse, mouse->id, grab->window, DoEnterLeaveEvents(mouse, mouse->id, grab->window,
mouse->spriteInfo->sprite->win, NotifyUngrab); mouse->spriteInfo->sprite->win, NotifyUngrab);
if (grab->confineTo) if (grab->confineTo)
ConfineCursorToWindow(mouse, RootWindow(mouse), FALSE, FALSE); ConfineCursorToWindow(mouse, GetCurrentRootWindow(mouse), FALSE, FALSE);
PostNewCursor(mouse); PostNewCursor(mouse);
if (grab->cursor) if (grab->cursor)
FreeCursor(grab->cursor, (Cursor)0); FreeCursor(grab->cursor, (Cursor)0);
@ -2247,7 +2247,7 @@ FixUpEventFromWindow(
event->evtype == XI_PropertyEvent) event->evtype == XI_PropertyEvent)
return; return;
event->root = RootWindow(pDev)->drawable.id; event->root = GetCurrentRootWindow(pDev)->drawable.id;
event->event = pWin->drawable.id; event->event = pWin->drawable.id;
if (pSprite->hot.pScreen == pWin->drawable.pScreen) if (pSprite->hot.pScreen == pWin->drawable.pScreen)
{ {
@ -2268,7 +2268,7 @@ FixUpEventFromWindow(
} else } else
{ {
XE_KBPTR.root = RootWindow(pDev)->drawable.id; XE_KBPTR.root = GetCurrentRootWindow(pDev)->drawable.id;
XE_KBPTR.event = pWin->drawable.id; XE_KBPTR.event = pWin->drawable.id;
if (pSprite->hot.pScreen == pWin->drawable.pScreen) if (pSprite->hot.pScreen == pWin->drawable.pScreen)
{ {
@ -2564,7 +2564,7 @@ XYToWindow(DeviceIntPtr pDev, int x, int y)
pSprite = pDev->spriteInfo->sprite; pSprite = pDev->spriteInfo->sprite;
pSprite->spriteTraceGood = 1; /* root window still there */ pSprite->spriteTraceGood = 1; /* root window still there */
pWin = RootWindow(pDev)->firstChild; pWin = GetCurrentRootWindow(pDev)->firstChild;
while (pWin) while (pWin)
{ {
if ((pWin->mapped) && if ((pWin->mapped) &&
@ -2737,7 +2737,8 @@ CheckMotion(DeviceEvent *ev, DeviceIntPtr pDev)
if (pSprite->hot.pScreen != pSprite->hotPhys.pScreen) if (pSprite->hot.pScreen != pSprite->hotPhys.pScreen)
{ {
pSprite->hot.pScreen = pSprite->hotPhys.pScreen; pSprite->hot.pScreen = pSprite->hotPhys.pScreen;
RootWindow(pDev) = pSprite->hot.pScreen->root; RootWindow(pDev->spriteInfo->sprite) =
pSprite->hot.pScreen->root;
} }
} }
@ -2942,7 +2943,7 @@ InitializeSprite(DeviceIntPtr pDev, WindowPtr pWin)
FatalError("Failed to allocate spriteTrace"); FatalError("Failed to allocate spriteTrace");
pSprite->spriteTraceSize = 32; pSprite->spriteTraceSize = 32;
RootWindow(pDev) = pWin; RootWindow(pDev->spriteInfo->sprite) = pWin;
pSprite->spriteTraceGood = 1; pSprite->spriteTraceGood = 1;
pSprite->pEnqueueScreen = pScreen; pSprite->pEnqueueScreen = pScreen;
@ -4554,7 +4555,8 @@ ProcGrabPointer(ClientPtr client)
if (grab) if (grab)
{ {
if (grab->confineTo && !confineTo) if (grab->confineTo && !confineTo)
ConfineCursorToWindow(device, RootWindow(device), FALSE, FALSE); ConfineCursorToWindow(device, GetCurrentRootWindow(device), FALSE,
FALSE);
oldCursor = grab->cursor; oldCursor = grab->cursor;
} }
@ -4883,7 +4885,7 @@ ProcQueryPointer(ClientPtr client)
rep.mask = mouse->button ? (mouse->button->state) : 0; rep.mask = mouse->button ? (mouse->button->state) : 0;
rep.mask |= XkbStateFieldFromRec(&keyboard->key->xkbInfo->state); rep.mask |= XkbStateFieldFromRec(&keyboard->key->xkbInfo->state);
rep.length = 0; rep.length = 0;
rep.root = (RootWindow(mouse))->drawable.id; rep.root = (GetCurrentRootWindow(mouse))->drawable.id;
rep.rootX = pSprite->hot.x; rep.rootX = pSprite->hot.x;
rep.rootY = pSprite->hot.y; rep.rootY = pSprite->hot.y;
rep.child = None; rep.child = None;
@ -5042,7 +5044,7 @@ ProcSendEvent(ClientPtr client)
/* If the input focus is PointerRootWin, send the event to where /* If the input focus is PointerRootWin, send the event to where
the pointer is if possible, then perhaps propogate up to root. */ the pointer is if possible, then perhaps propogate up to root. */
if (inputFocus == PointerRootWin) if (inputFocus == PointerRootWin)
inputFocus = RootWindow(dev); inputFocus = GetCurrentRootWindow(dev);
if (IsParent(inputFocus, pSprite->win)) if (IsParent(inputFocus, pSprite->win))
{ {