[RFC XI 2.1 - inputproto] Various fixes in response to Peter Hutterer's review

Peter Hutterer peter.hutterer at who-t.net
Thu Dec 2 22:30:48 PST 2010

On Thu, Dec 02, 2010 at 10:30:56AM -0500, Chase Douglas wrote:
> On 12/01/2010 04:27 PM, Daniel Stone wrote:
> > On Fri, Nov 19, 2010 at 01:52:39PM -0500, Chase Douglas wrote:
> >>  A touch event is not delivered according to the device hierarchy. All touch
> >> -events are sent only through their originating slave devices.
> >> +events are sent only through their originating slave devices. However,
> >> +dependent touch devices will only emit touch events if they are attached to a
> >> +master device. This is due to the touch delivery being dependent on the
> >> +location of a cursor.
> > 
> > I find this fairly worrying.  The main reason not to send touch events
> > through MDs is that it would necessarily cause a storm of
> > DeviceChangedEvents.  

DCE's are only created when you switch between the devices. So unless you
use your mouse _and_ your touchscreen(s) at the same time, no DCEs will be
generated. Even if you use mouse and touchscreen in a serial manner, you'll
only get one DCE whenever you switch between the two.

> > However, we can handwave this away in the spec by
> > avoiding listing touch classes on MDs, and stating (as my original
> > revision did) that touch capabilities must be taken from the SD, as
> > given in sourceid of the event.
> > 
> > The reason this concerns me is that it creates (even more) divergent
> > event delivery paths for touch events vs. normal events.  This is a pain
> > in and of itself when trying to understand event flow, which can be
> > difficult at the best of times, but especially if we're going to be
> > generating synthesised pointer events from touch events.  This would
> > mean that the same touch would be generating two events which go down
> > completely separate delivery paths.  The worst case here is that one
> > touch causes two clients to react and do two different things: this
> > would be bad bad bad bad bad.
> > 
> > So I'd be much happier if touch events were also delivered through the
> > MDs as well.
> I am ok with sending events through the MD if the DCEs are not generated
> for touch events and MDs do not copy touch axes. I think that alleviates
> the potential performance impact.

what performance impact? I don't think the DCE's are the performance impact
we have to worry about. if we're sending a DCE every few seconds but
multiple touch events as second, our optimization paths are somewhere else.


More information about the xorg-devel mailing list