[PATCH (v5) xserver 1/8] Input: Add DeepestSpriteWin macro

Peter Hutterer peter.hutterer at who-t.net
Thu Jan 20 15:13:13 PST 2011


On Wed, Jan 19, 2011 at 11:11:43PM +0000, Daniel Stone wrote:
> Does what it says on the box: returns the deepest child window in a
> given sprite's trace.
> 
> Signed-off-by: Daniel Stone <daniel at fooishbar.org>

Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>

Cheers,
  Peter

> ---
> 
> 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
> 


More information about the xorg-devel mailing list