X Gesture Extension protocol - draft proposal v1

Simon Thum simon.thum at gmx.de
Wed Aug 18 12:54:24 PDT 2010


Hi Chase,

I'll just quickly note some things not covered by Peter.

Am 16.08.2010 17:13, schrieb Chase Douglas:
> Each touch event location occurs within a hierarchy of windows from the child
> window, the top-most window the touch occurred in, and the root window of the
> screen in which the touch event occurred. The common ancestry of all touch
> events is used for propagation.
That's very single-user. What about big muti-touch screens with multiple
people around? I'm not arguing you should cater that case, but at least
don't rule it out right in the spec. IOW, why not let the special client
decide propagation constraints?

> 
> The common ancestry is traversed from child windows to parent windows to find
> the first window with a client selecting for initiation of the gesture primitive
> comprising the touches. The first window meeting this criteria is the normal
> event window.
I think that normal window deserves a definition of its own.

> 4. Gesture Primitive Events
> 
> Gesture primitive events provide a complete picture of the gesture and the
> touches that comprise it. Each gesture provides typical X data such as the
> window ID of the window the gesture occurred within, and the time when the event
> occurred. The gesture specific data includes information such as the focus point
> of the event, the location and IDs of each touch comprising the gesture, the
> properties of the gesture, and the status of the gesture.
Is the focus point the coordinate in GestureRecognized? If yes, why do
you call it gesture-specific? It's present in all gestures recognized.

> coordinates. The status of the gesture defines the state of the gesture through
> its lifetime.
This sentence is defined by these words until the .

> When the engine recognizes a gesture primitive, it sends a gesture event to the
> server with the set of input event sequence numbers that comprise the gesture
> primitive. The server then selects and propagates the gesture event to clients.
> If clients were selected for propagation, the input events comprising the
> gesture primitive are discarded. Otherwise, the input events are released to
> propagate through to clients as normal XInput events.
I understand what you want to achieve, but I'd argue that apps shouldn't
be listening to xinput events when they register for gestures. Or at
least, only in properly constrained areas. Think of a mouse/pad gesture
detection - how to avoid the latency implied by that approach?

> The timeout value is implementation specific.
(Having 5 ms here doesn't count...)

Cheers,

Simon



More information about the xorg-devel mailing list