← Back to team overview

multi-touch-dev team mailing list archive

Re: Current grail architecture and future needs

 

On 10/04/2010 08:48 PM, Chase Douglas wrote:
[...]

> When I thought about MT grabbing, I realized that grabbing really needs
> to be done on a per-finger basis, and the client needs to decide early
> on whether to grab the touch through the entire touch, or whether it
> should allow events through to non-grabbing clients.
> 
> Imagine you perform a two finger pinch gesture and then move directly
> into a two finger drag. If a client subscribes only to the drag gesture,
> it will receive gesture events for the drag once grail starts to
> recognize it. However, this breaks down when we try to involve MT grabs.


Pardon me, but since the current setup works, it seems to me the complication
comes from the notion of grabs itself, not from solving any particular problem.
Perhaps if we go back and formulate what problem grabbing is supposed to solve,
we can find solution that fits more naturally.

> We would need to wait through an entire touch sequence until a

> subscribed gesture is found before we can decide whether to handle all
> the events ourselves or replay them to other clients.


This I do not understand - are we talking about gesture primitives and gestures
being the same thing here?


> What I think we'll need to do is modify grail so that it recognizes a
> subscribed gesture very soon after a touch begins. If no gesture was
> recognized, the touch needs to be passed through as normal MT events for
> the remaining duration of the touch. This allows a grabbing client to
> make a decision on whether to replay events for the touch to
> non-grabbing clients.


Well, this looks a lot like what is implemented already, except gesture
primitives are not required to be continuous.

> This also means grail can't recognize gestures
> based on touches that have already been disposed to pass-through status.


Which breaks down as soon as we look at composite gestures...

Cheers,
Henrik



Follow ups

References