[Bf-committers] Trackpad multi-touch gestures (scroll/pinch/rotate) handling patch

William Reynish billrey at me.com
Tue Jan 5 20:19:39 CET 2010

Hi Damien,

I'll test the patch soon. Thanks for the awesome work.

What I meant about the controls was this: I love that you've included  
support for the rotate gesture, but rotating around the view plane  
isn't very useful. Alt+scrolling works for orbiting, but is a bit  
cumbersome compared to simpler gestures sans modifier. Since orbiting  
is a very common action I'd advise that it be mapped to the rotate  
gesture, replacing the view plane rotation.

Though I wonder if all of this is customisable through the input  
editor? Or is it hard coded?


William Reynish

On 05/01/2010, at 18.33, Damien Plisson <damien.plisson at yahoo.fr> wrote:

> Hi William,
> All two fingers API return float incremental values that can be  
> quite precise.
> That's why you can zoom in tiny increments.
> Following Shaul feedback, I've decrease by a factor of 4 the zoom  
> speed.
> The issue is with panning which has an idle threshold that may be  
> too high, and that explains the jerkiness you observed. To try to  
> lessen this effect, I've implemented (in the updated patch) a  
> quadratic acceleration. Tell me what you think of it !
> I don't get exactly suggestion for rotation, as orbital rotation is  
> available through Alt+panning when in "turntable" mode.
> BTW, a funny thing is that thx to obj-C runtime binding, even if  
> Blender is compiled for ppc 10.4 (systems way before multitouch  
> trackpads), multitouch works fine on a recent mbp !
> I've updated the patch, but if it seems ok, I'll commit it soon...
> Cheers,
> Damien
> Le 4 janv. 2010 à 16:56, William Reynish a écrit :
>> Hi Damien,
>> I've tested your patch today - works really nicely. I was even  
>> surprised to see how the zooming is butter smooth - either it's  
>> implemented in a different way, or it moves in very tiny,  
>> unnoticable increments. Regular panning and orbiting is more jerky  
>> though. I agree with others that the zooming is a bit too  
>> sensitive, and there seems to be a tiny amount of lag before the  
>> pinch gesture starts to react, after which it's perfectly smooth  
>> and responsive.
>> The controls are quite nice, though you seldom want to rotate  
>> around the view plane. I'd prefer if it rotated around the y axis  
>> when using the rotate gesture. Either that or the two finger  
>> scrolling should default to orbiting, which is after all the most  
>> common movement you'll want to do in 3d.
>> Yes, I think it should be kept as auto, detecting whether the user  
>> is using a mouse, or trackpad. Laptop users attach or detach mice  
>> frequently and it would be a hassle to manually set it up each time.
>> Thanks a bunch for this work. I'll definitely propose that we  
>> include this.
>> William
>> On 3 Jan, 2010, at 6:59 PM, Damien Plisson wrote:
>>> Hi all,
>>> During the vacation time, I was stuck in an Internet-free place  
>>> (an issue), but without a mouse (more serious issue), so to keep  
>>> my Blender experience as good as possible, I needed to get these  
>>> shiny trackpad multitouch features operational !
>>> So, based on trackpad pan work initiated by James Deery [his mail  
>>> of Nov 5th 2009], I've implemented the handling of the trackpad 2- 
>>> fingers gestures :
>>> - 2 fingers scroll (MOUSEPAN / GHOST_kTrackpadEventScroll event)  
>>> pans the view
>>> - 2 fingers pinch (MOUSEZOOM / GHOST_kTrackpadEventMagnify event)  
>>> zooms the view
>>> And in 3D view:
>>> - alt + 2 fingers scroll rotates the view
>>> - 2 fingers rotation (MOUSEROTATE / GHOST_kTrackpadEventRotate)  
>>> rotates the view around the axis orthogonal to the screen (the 3rd  
>>> axis !)
>>> This is currently fully implemented for OSX (GHOST Cocoa fires the  
>>> new events), but there must be some PC laptops with similar  
>>> features that'll take advantage of this... PC users, can you  
>>> confirm ? (I remember using a laptop with the 2D scroll features  
>>> on its trackpad).
>>> FYI, OSX implementation compiles from 10.4, though the
>>> In Ghost, I've currently implemented an auto-detection of the  
>>> source peripheral, so that a regular mouse still sends MOUSEWHEEL  
>>> events.
>>> Apple special mice behave like trackpad (not configurable from  
>>> documented API), so the mighty mouse trackball sends 2D scroll  
>>> events. And the magic mouse touch gestures must be like trackpad's.
>>> Do you think it should be kept in "auto" mode (wheel events for  
>>> regular mouse, scroll/zoom/rotate events for trackpad/special  
>>> mouse), or be an option user configurable ?
>>> I've posted this as patch #20555 in the patch tracker : https://projects.blender.org/tracker/index.php?func=detail&aid=20555&group_id=9&atid=127
>>> for your reviews, comments & suggestions.
>>> Damien
>>> _______________________________________________
>>> Bf-committers mailing list
>>> Bf-committers at blender.org
>>> http://lists.blender.org/mailman/listinfo/bf-committers
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers

More information about the Bf-committers mailing list