[PATCH RFC] New raw event behaviour for XI 2.1

Peter Hutterer peter.hutterer at who-t.net
Wed May 11 23:09:14 PDT 2011


On Thu, May 12, 2011 at 10:06:47AM +0200, Simon Thum wrote:
> On 05/12/2011 01:57 AM, Peter Hutterer wrote:
> > On Wed, May 11, 2011 at 09:16:15PM +0200, Simon Thum wrote:
> >> On 05/11/2011 06:59 AM, Peter Hutterer wrote:
> >>>
> >>> The current raw event behaviour is pretty useless. RawEvents are sent to all
> >>> root windows but only if the device is not grabbed. Clients that need to
> >>> monitor devices can only do so by grabbing the device - rendering it
> >>> unusable to other clients. Real device monitoring (like we want for 2.1
> >>> touch support for example) is not possible.
> >>> I have yet to hear of someone who actually needs the current behaviour and I
> >>> can't imagine a use-case that does either.
> >> Hi Peter,
> >>
> >> it's great you're tackling this. When I suggested raw events I didn't
> >> think such limits would apply for whatever reason.
> >>
> >> I haven't read the spec recently, but I'm sure I would have objected
> >> that when raw events were introduced - given I had noticed. So I'd say
> >> if there is no explicit statement that raw events are subject to grabs
> >> before 2.1, why not change it to match common sense, disregarding client
> >> protocol version?
> > 
> > There is an explicit statement in the protocol:
> > "RawEvents are sent exclusively to all root windows or to the client
> > that grabbed the device only."
> Thanks for the clarification. I guess the intent was to support
> full-screen apps and those who care, but I don't think a grab implements
> that properly.

IIRC the intent was to not make it too easy to build keyloggers, but that
was woefully misguided since that is still rather simple and we lost vital
functionality.

grabbing of course still works for trapping the mouse cursor, especially
so with the recent confine to patches we've had on the list.

Cheers,
  Peter


> > 
> > So we can't change it for 2.0 anymore, but as you can see from the patchset
> > it's quite trivial to support it for 2.1.
> > 
> > Cheers,
> >   Peter
> > 
> > 
> >> After all, they're separate events. Reliance on such a (unspecified)
> >> detail should be very low.
> >>
> >> Cheers,
> >>
> >> Simon
> >>
> >>
> >>>
> >>> Change the behaviour for clients supporting 2.1 so that raw events are
> >>> delivered regardless whether a grab is active on the device. Behaviour for
> >>> 2.0 clients stays the same. Clients that grabbed devices to get raw events
> >>> will still get raw events, so that part of the 2.0 behaviour is preserved
> >>> even with 2.1.
> >>>
> >>> No protocol additions, only documentation update necessary. No libXi patch
> >>> needed. Note that if you just apply the patch as-is, testing will fail since
> >>> XIQueryVersion still limits the server to 2.0. You need to manually bump the
> >>> server to 2.1 for the changes to take effect.
> >>>
> >>> The X server patch builds onto the patchset I just sent out before.
> >>>
> >>> Cheers,
> >>>   Peter
> >>>
> >>> _______________________________________________
> >>> xorg-devel at lists.x.org: X.Org development
> >>> Archives: http://lists.x.org/archives/xorg-devel
> >>> Info: http://lists.x.org/mailman/listinfo/xorg-devel
> >>>
> >>
> > 
> 


More information about the xorg-devel mailing list