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 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
