Does what it says on the box: returns the deepest child window in a
given sprite's trace.

Signed-off-by: Daniel Stone <[email protected]>
---

v5: New.

 dix/events.c       |    4 ++--
 include/inputstr.h |    3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dix/events.c b/dix/events.c
index 07f8b05..5f8ce39 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -2174,7 +2174,7 @@ MaybeDeliverEventsToClient(WindowPtr pWin, xEvent 
*pEvents,
 
 static Window FindChildForEvent(SpritePtr pSprite, WindowPtr event)
 {
-    WindowPtr w = pSprite->spriteTrace[pSprite->spriteTraceGood-1];
+    WindowPtr w = DeepestSpriteWin(pSprite);
     Window child = None;
 
     /* If the search ends up past the root should the child field be
@@ -2591,7 +2591,7 @@ XYToWindow(SpritePtr pSprite, int x, int y)
        else
            pWin = pWin->nextSib;
     }
-    return pSprite->spriteTrace[pSprite->spriteTraceGood-1];
+    return DeepestSpriteWin(pSprite);
 }
 
 /**
diff --git a/include/inputstr.h b/include/inputstr.h
index b74ee04..8291577 100644
--- a/include/inputstr.h
+++ b/include/inputstr.h
@@ -244,6 +244,9 @@ typedef struct _SpriteRec {
 
 } SpriteRec;
 
+#define DeepestSpriteWin(sprite) \
+    ((sprite)->spriteTrace[(sprite)->spriteTraceGood - 1])
+
 typedef struct _KeyClassRec {
     int                        sourceid;
     CARD8              down[DOWN_LENGTH];
-- 
1.7.2.3

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to