[PATCH v2] input: deliver raw events unconditionally for XI 2.1 clients.

Daniel Stone daniel at fooishbar.org
Wed May 25 03:50:56 PDT 2011


Hi,

On Wed, May 25, 2011 at 02:44:01PM +1000, Peter Hutterer wrote:
> On Sat, May 21, 2011 at 01:21:28PM +0100, Daniel Stone wrote:
> > I'd rather do the filtering in TryClientEvents, where we already do
> > pretty much all the filtering.
> 
> Sure, why not, see below.

Thanks, this looks better.

> > Speaking of: TryClientEvents will bin the event
> > if (grab && !SameClient(grab, client)).  So don't you need to change
> > that to get this working as well?
> 
> This whole thing relies on the right caller order. Which is a bit of a hack
> but until we have internal events everywhere the best way to integrate it.
> From the comments in the patch:
>  * grab is non-NULL when coming from DeliverGrabbedEvent(), otherwise NULL.
> 
> So for a raw event during grabs we get called twice. The first time without
> a grab (where we filter for XI2.0) and the second time with a grab (where
> we filter for XI 2.1 and XI2.0 if grab && !SameClient())
> 
> and yes, this is a bit flimsy, I agree.

Hm, I have to admit I'm still a little bit lost here.  Does
ProcessRawEvent get called twice? At the moment I'm still only seeing
the one test in TryClientEvents, below the if (grab && !SameClient)
test which will unconditionally discard it.  Hopefully I'm just being
dense. :)

Cheers,
Daniel


More information about the xorg-devel mailing list