← Back to team overview

multi-touch-dev team mailing list archive

Re: Peter Hutterer's thoughts on MT in X

 

Hi Chase,

Thank you for the heads up. I will reply to your other thread later
(lack of time to read and think). I need to comment on a paragraph of
Peter's blog to avoid "popularity". Well, to make sure that we are all
on the same page.

Peter said: "With the new approach the recognition happens purely
client-side and is done by a library or a daemon. This allows for
multiple different gesture recognisers be active at the same time, a
scenario that is quite likely to happen (I do envision GTK, Qt,
Mozilla, etc. all wanting their own system). Whether that's a good
thing for the UI is another matter, consistency for gestures is
important and especially Ping Cheng was not happy at the prospect of
having multiple, possibly inconsistent, systems. We need to find some
common ground here between desktop environments and toolkits."

First of all, I am very happy with all the discussions we had so far.
It makes me feel that we are working on a solution/solutions and we
are working together.

However, there are three cases  (well, maybe more. Let's see how many
I am going to end up with :) in Peter's message above:

1.  supporting multiple systems in design;
2.  tracking multipe systems/clients simultaneously;
3.  running multipe systems simultaneously for the same set of MT events.

>From my reply to Chase's last email you can see that I agree with the
first case wholeheartedly. We (well, the X server) should give clients
and toolkits developers the freedom to convert MT events in their own
ways. X server is a focal point to provide generic UI digestible MT
events and a tracking agent for the events (grab/ungrab, etc). So,
there would be no inconsistency from the X server's perspective in
this case.

The second case, master/passive grabs, is fine too as long as we can
manage them properly, assuming there is only one master at a time.

It is the third one that I do not think I have understood it properly.
How can we run multipe systems simultaneously on a system? Which
client is going to do what? There is only one current application at a
time, isn't it? Even for applications that support multiple users
(i.e., tons of fingers :) simultaneously, it is still one application
drives all the events. So, the client either grabs all the events or
none. It can use all or some of the events. But we don't let another
client share the "spare" events simultaneously.

My suggestion was "Keep It Simple, Stupid". The events will be handled
by one client at a time until it releases them (all touches are out).
When a signle finger touches the surface, it is posted as a cursor
movement (it doesn't matter whether this device only supports one
finger or more). As soon as X server detects more than one touch, it
stops sending cursor movement and waits for a certain time. While it
is waiting, some kind of "we are here" that indicates what/where is
being touched would be nice, as Peter pointed out somewhere in his
blog, I think (I didn't read through the message. It is too long :).

During this time frame, clients and the Unity can react to the MT
events. Whether the client or the Unity should get the events first
can be discussed since we have a master/passive grab in the design. I
think the Unity should be the default agent to process the events if
no one cares.

The Unity (system-wide MT events translator) is platform specific too.
It can be the Ubuntu way. Other OS vendors can also have their own
design and implementation, or don't even support MT at all. So, we get
two layers of diversities here, at the toolkit stage and during the
system wide event translation.

Am I making myself clearer or confusing you guys even more?

Ping

On Tue, Oct 5, 2010 at 6:49 AM, Chase Douglas
<chase.douglas@xxxxxxxxxxxxx> wrote:
> Hi all,
>
> In case you haven't seen it yet, Peter posted a great blog entry on MT
> in X. It's a high level overview of the concepts and issues involved,
> don't worry if you're not an X hacker :). He also give his thoughts on
> the gesture work we've put forward in Ubuntu.
>
> http://who-t.blogspot.com/2010/10/thoughts-on-linux-multitouch.html
>
> -- Chase



Follow ups

References