← Back to team overview

multi-touch-dev team mailing list archive

Re: Unity Gesture UI Guidelines 0.2 now available http://docs.google.com/View?id=dfkkjjcj_1482g457bcc7

 

Hi Chase,

Thanks for your email, apologies for the delay in replying.

On 02/09/10 21:32, Chase Douglas wrote:
On Thu, 2010-09-02 at 17:39 +0100, John Lea wrote:
Hi All,

I have just published version 0.2 of the Unity Gesture UI Guidelines; it
is available at http://docs.google.com/View?id=dfkkjjcj_1482g457bcc7 .

There are a lot of changes so it is worth having a quick read through,
but the most potentially confusing modifications are to do with
terminology.  The interaction levels are now named Objective,
Application, Screen and Unity.  The term 'Chain Gestures' has also been
replaced with 'Compound Gestures' which hopefully better signifies that
the component gestures can be ordered both sequentially and in
parallel.  I understand that it is a pain to change terminology after we
have started using it in our day to day work, but if we are going to
make terminology changes the best time to do it is now while we are
still early in the development process.  From this point onwards we will
try to avoid making further changes to already defined terminology.
Hi John,

Great work! I have a few things I'd like to note:

1. The spec says, "Performing the 'greedy' trigger gesture on top of an
application that does not support a greedy state will produce no
effect." How will this be determined?

If the application does not have a greedy state nothing will happen in response to a user performing the greedy gesture over the applicaiton. This is simply the null case; the greedy gesture has no effect on applications that do not specifically support greedy interaction.

What if inkscape understands
multitouch but not gestures? Will Unity not unlock it because inkscape
hasn't subscribed to three or four finger gestures?

If inkscape has a greedy state, the greedy gesture will toggle the greedy state on or off. If inkscape does not have a greedy state it will be limited to only receiving one and two finger multi-touch input and one and two finger gestures.

I'm unsure about your comment regarding inkscape supporting only multi-touch but not gestures - I think we will want inkscape to support gestures for moving the view port, resizing and rotating objects, etc...? For an application to officially work and comply with the Unity Touch platform it has to support gestures. I can see that some applications may make use of gestures without using multi-touch but I can't see it happening the other way around. However I may be wrong, are there any specific use cases you have in mind?

Also see section 3.2.4 on protected gestures for some more info.

My gut tells me this functionality needs to be either non-unity specific
or unity will have to relinquish control over any window that the user
requests to be non-greedy. In the former case, it still might be
difficult to get developers to adopt a framework unless more window
managers other than unity use it. Just something to think about.
2. The spec says, "Applications can also choose to only make a portion
of the window greedy." IIRC, the only way to request for input over a
portion of a window is to use XShape. XShape defines a sub-region of a
window that can accept input. I *think* that XShape is currently only
implemented on a per-window basis, not a per-client basis, so to
properly support this aspect we may need to extend XShape for per-client
regions.

The above isn't an issue with the spec of course, I just want to make it
known that it may require a bit of X development to make it work
properly.

Making the greedy state work on a per window basis is higher priority that making it work on only portions of a window. We don't yet have any specific ideas of what applications may need to make only a portion of a window greedy, and the implementation of this feature should really wait until we have a solid, practical use case in mind.

3. The spec says that in a greedy state, a client can receive objective
and application level gestures within the greedy space. Why not within
the app window like in the non-greedy state?

Generally the greedy space will be the entire app window. When a app is in greedy state all gestures and multi-touch input bypass Unity and go to the app. The only exceptions are the three protected gestures.

When a app is not greedy it will never receive objective and application level gestures.

If the greedy space is a
sub-region of the app window, you'll be locking out the rest of the
window from receiving objective and application level gestures.

That isn't the intention, the desired behavior is that gestures initiated inside a greedy area or window bypass Unity and go to the application, and that gestures initiated outside of a greedy area or window are interpreted in the normal fashion.

4. I worry about the undo gesture and it's implementation/usage. Why not
just queue up multitouch events while a three-finger hold is being
performed, and only sending them to the application when the touches are
determined not to be a greedy trigger? This would remove the requirement
for a drawing application to be gesture aware.

This would add user visible latency which we are trying to avoid at all costs. Low latency and perceived responsiveness are really important to the user experience.

Regarding the undo option in general, it is needed so that there is always a simple way to revert mistakes like pressing 'delete' instead of 'copy' in a touchpoint menu.

Thanks for the spec update! I think it's a really great document that
will help guide us to an awesome Ubuntu UI experience!

-- Chase


Thanks for your feedback! This is only the beginning of the guidelines document that Unity app developers will hopefully use. Unfortunately I still havn't had a chance to start writing the specification for the user experience we will be responsible for delivering in the 11.04 cycle.

cheers,
John

--
John Lea | User Experience Architect
Canonical  www.canonical.com | Ubuntu  www.ubuntu.com
27th Floor, 21-24 Millbank Tower, London, SW1P 4QP
Tel: +44 (0) 20 7630 2415 | Email: john.lea@xxxxxxxxxxxxx




Follow ups

References