← Back to team overview

multi-touch-dev team mailing list archive

Re: Peter Hutterer's thoughts on MT in X

 

On 10/11/2010 04:22 PM, Chase Douglas wrote:
[...]

> If I've read the rest of this thread correctly, it feels like Henrik is
> advocating for splitting the gesture stack into a recognizer in X and an
> instantiator on the client side. The issue I see here is that you still
> need the context that only exists client side in order to perform
> gesture recognition.
> 
> Take the case of what looks like a three finger pinch where two fingers
> are over one object in a window and the third is over another object.
> Imagine the two-fingered object is a scrollable region, and the
> single-fingered object is a toolbar button above the scrollable region.
> Now, you move the two fingers up to scroll. This looks like a three
> finger pinch, but it's really a two finger drag. The recognizer would
> have to enumerate all the possibilities of gestures depending on which
> fingers are part of a possible gesture, and this becomes exponentially
> difficult as the number of fingers increases. Thus, we can only perform
> recognition after we know which fingers are part of a gesture, and we
> can only do that with the knowledge available on the client side.


Nice example! To further complicate things, now imagine the three-finger pinch
is in fact a window-manager gesture that should zoom out to window selection,
like in unity. In order to route the gesture to the right place, knowledge of
the three-finger pinch would have to be available on the event-routing level,
which certainly seems simpler if the gesture primitives are known on the server
side.

For this particular example, since the regions are listening to different
gestures, there is actually knowledge available on the server side as well, so
the combinatorial explosion does not seem to enter here.

In general, the problem seems to be artificially created by the client-server
model itself, and the assumption that communication between them is either slow
or racy. If we end up finding that clients dynamically affect gesture detection
which affects event propagation, we should probably revisit the role of the
server altogether.

Cheers,
Henrik



Follow ups

References