← Back to team overview

multi-touch-dev team mailing list archive

Re: Peter Hutterer's thoughts on MT in X

 

On 7/10/10 20:01 , Henrik Rydberg wrote:
On 10/07/2010 12:27 AM, Peter Hutterer wrote:

[...]
master: virtual device representing either cursor or keyboard focus
slave: physical device (in most cases)
core: device that can send core events. term is essentially deprecated,
think of a master device as a core device. (slaves can never send core
events). best to not use the term anymore, see also "core event"
core event: core X protocol event sent down the wire.
passive grab: grab activated when a button/key combination is pressed on a
particular window. clients need to register a passive grab once, then will
activate repeatedly until ungrabbed. passive grabs terminate automatically
when the button/key is released
active grab: grab activated immediately on request by the client, terminates
when client ungrabs or disconnects.

That about sums it up, I think :)


Thanks for this comprised explanation. :-) It would be great to get a similar
explanation to the touch interface, and what one gains by moving the gesture
recognition to the client side. ;-)

in terms of the touch interface - will do asap but I need to get through my review queue first.

for moving the gestures to the client side:
gestures are a very context-specific thing and in that article that started this thread, the paragraphs under "The lack of context" sum it up best: as an outsider you cannot know what is a gesture. So you will end up interpreting some things as a gesture that shouldn't, and not interpreting others that should be a gesture. For example, once an object is selected a number of gestures may become active that aren't otherwise. So on selecting an object, you need to teach the recogniser about these (or at least enable them), which puts you in a race condition because by the time the request has been forwarded to the recogniser, the gesture may already be over again. Plus, the roundtrip issue of sending events to the recogniser who sends some of them back before you can send them to the clients.

Technical reasons include the difficulty of updating the protocol if you notice something was missing - much harder than updating a library API.

Cheers,
  Peter



Follow ups

References