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

Peter Hutterer peter.hutterer at who-t.net
Tue May 24 21:44:01 PDT 2011


Deliver raw events regardless whether there is a grab on or not for clients
supporting 2.1 or later.

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

On Sat, May 21, 2011 at 01:21:28PM +0100, Daniel Stone wrote:
> On Wed, May 11, 2011 at 02:59:35PM +1000, Peter Hutterer wrote:
> > @@ -2039,7 +2085,8 @@ DeliverEventToClients(DeviceIntPtr dev, WindowPtr
> > win, xEvent *events,
> >          mask = GetEventMask(dev, events, other);
> >  
> >          if (XaceHook(XACE_RECEIVE_ACCESS, client, win,
> > -                    events, count))
> > +                    events, count) ||
> > +            FilterRawEvents(dev, events, grab, client))
> >              /* do nothing */;
> >          else if ( (attempt = TryClientEvents(client, dev,
> >                          events, count,
> 
> I'd rather do the filtering in TryClientEvents, where we already do
> pretty much all the filtering.

Sure, why not, see below.

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


More information about the xorg-devel mailing list