X Gesture Extension protocol - draft proposal v1

Chase Douglas chase.douglas at canonical.com
Mon Aug 16 12:41:47 PDT 2010


On Mon, 2010-08-16 at 14:09 -0400, Kristian Høgsberg wrote:
> On Mon, Aug 16, 2010 at 11:13 AM, Chase Douglas
> <chase.douglas at canonical.com> wrote:
> >
> >                            The X Gesture Extension
> >                                  Version 1.0
> >
> >                                 Chase Douglas
> >                          chase.douglas at canonical.com
> >                                Canonical, Ltd.
> >
> > ********************************************************************************
> > ********************************************************************************
> > **************************                           ***************************
> > **************************    DRAFT PROPOSAL (v1)    ***************************
> > **************************                           ***************************
> > ********************************************************************************
> > ********************************************************************************
> >
> >
> > 1. Introduction
> >
> > The X Gesture Extension is a mechanism to provide the following:
> > - Interface for X clients to register and receive gesture primitive events
> > - Interface for an X client to act as a gesture engine
> 
> What's the reasoning behind this architecture?  Could the gesture
> recognition just be done in the client, provided we have a good way
> for X to communicate multi-touch events?  Splitting it up into a
> "gesture engine" and teaching X about gestures seem unecessarily
> complex at a first glance.

I go into this in depth in section 3. In brief, all this is needed
because gestures are fundamentally groupings of touches that convey a
meaning together. With just multitouch X, touches occurring inside
different windows that select for events will be sent to the windows
respectively, depriving us of the ability to recognize them as a group
with one meaning. Thus, a different form of propagation is needed,
separate from how X Input propagation is performed.

Also, we think that there's a case to be made for environmental gestures
that should override gestures recognized by clients. This is provided by
the mutual exclusion flag when selecting for events. Again, this
wouldn't be possible without integrating it into the X propagation
mechanism.

I hope that helps :).

Thanks,

-- Chase



More information about the xorg-devel mailing list