[PATCH 4/4] Use GetCurrentRootWindow or equivalent instead of spriteTrace[0].

Jamey Sharp jamey at minilop.net
Wed Aug 4 14:23:05 PDT 2010


Signed-off-by: Jamey Sharp <jamey at minilop.net>
Cc: Peter Hutterer <peter.hutterer at who-t.net>
---
 dix/devices.c    |    2 +-
 dix/enterleave.c |   13 ++++---------
 dix/events.c     |    2 +-
 3 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/dix/devices.c b/dix/devices.c
index ac5806a..12ce890 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -2429,7 +2429,7 @@ AttachDevice(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr master)
         WindowPtr currentRoot;
 
         if (dev->spriteInfo->sprite)
-            currentRoot = dev->spriteInfo->sprite->spriteTrace[0];
+            currentRoot = GetCurrentRootWindow(dev);
         else /* new device auto-set to floating */
             currentRoot = screenInfo.screens[0]->root;
 
diff --git a/dix/enterleave.c b/dix/enterleave.c
index 7a3ecf5..b1ee3fb 100644
--- a/dix/enterleave.c
+++ b/dix/enterleave.c
@@ -1251,11 +1251,6 @@ CoreFocusEvents(DeviceIntPtr dev,
     SetFocusIn(dev, to);
 }
 
-/**
- * The root window the given device is currently on.
- */
-#define RootWindow(dev) dev->spriteInfo->sprite->spriteTrace[0]
-
 static void
 DeviceFocusEvents(DeviceIntPtr dev,
                   WindowPtr from,
@@ -1284,7 +1279,7 @@ DeviceFocusEvents(DeviceIntPtr dev,
         if ((from == NullWindow) || (from == PointerRootWin))
         {
             if (from == PointerRootWin)
-                DeviceFocusOutEvents(dev, sprite->win, RootWindow(dev), mode,
+                DeviceFocusOutEvents(dev, sprite->win, GetCurrentRootWindow(dev), mode,
                         NotifyPointer);
             /* Notify all the roots */
             for (i = 0; i < nscreens; i++)
@@ -1304,19 +1299,19 @@ DeviceFocusEvents(DeviceIntPtr dev,
         for (i = 0; i < nscreens; i++)
             DeviceFocusEvent(dev, XI_FocusIn, mode, in, screenInfo.screens[i]->root);
         if (to == PointerRootWin)
-            DeviceFocusInEvents(dev, RootWindow(dev), sprite->win, mode, NotifyPointer);
+            DeviceFocusInEvents(dev, GetCurrentRootWindow(dev), sprite->win, mode, NotifyPointer);
     }
     else
     {
         if ((from == NullWindow) || (from == PointerRootWin))
         {
             if (from == PointerRootWin)
-                DeviceFocusOutEvents(dev, sprite->win, RootWindow(dev), mode,
+                DeviceFocusOutEvents(dev, sprite->win, GetCurrentRootWindow(dev), mode,
                         NotifyPointer);
             for (i = 0; i < nscreens; i++)
                 DeviceFocusEvent(dev, XI_FocusOut, mode, out, screenInfo.screens[i]->root);
             if (to->parent != NullWindow)
-                DeviceFocusInEvents(dev, RootWindow(dev), to, mode, NotifyNonlinearVirtual);
+                DeviceFocusInEvents(dev, GetCurrentRootWindow(dev), to, mode, NotifyNonlinearVirtual);
             DeviceFocusEvent(dev, XI_FocusIn, mode, NotifyNonlinear, to);
             if (IsParent(to, sprite->win))
                 DeviceFocusInEvents(dev, to, sprite->win, mode, NotifyPointer);
diff --git a/dix/events.c b/dix/events.c
index 89619b3..0790486 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -5056,7 +5056,7 @@ ProcSendEvent(ClientPtr client)
 	/* If the input focus is PointerRootWin, send the event to where
 	the pointer is if possible, then perhaps propogate up to root. */
 	if (inputFocus == PointerRootWin)
-	    inputFocus = pSprite->spriteTrace[0]; /* Root window! */
+	    inputFocus = RootWindow(dev);
 
 	if (IsParent(inputFocus, pSprite->win))
 	{
-- 
1.7.0



More information about the xorg-devel mailing list