[Bf-committers] Horizontal scrolling support (mainly on Mac)

Damien Plisson damien.plisson at yahoo.fr
Tue Nov 10 10:56:09 CET 2009


My previous answer was from the standard events provided by the API.

In fact, the trackpad (or the magic mouse) can be used as a multitouch tablet. You can try by yourself this simple app showing this:

http://lericson.blogg.se/code/2009/november/multitouch-on-unibody-macbooks.html

Damien

Le 5 nov. 2009 à 17:35, Damien Plisson a écrit :

> Unfortunately, only the two-fingers gestures (pan, rotate, magnify)  
> return continuous values, the three-fingers ones (swipe) give only  
> discrete (-1/0/+1) values per gesture, and thus can't be used for a  
> zoom operation.
> 
> Damien
> 
> Le 5 nov. 2009 à 12:22, William Reynish a écrit :
> 
>> Hi James and Damien,
>> 
>> The smooth scrolling patch sounds great. As you point out, OS X has
>> very slick scrolling because it doesn't treat scrolling like lots of
>> fast clicks, but more like a single smooth movement. Scrolling slowly
>> in Blender exposes how choppy the experience currently is, and so
>> having smooth scrolling in Blender would be really nice.
>> 
>> As for trackpads, this is something we can really look into exploiting
>> better. In the short term, omnidirectional scrolling would be very
>> nice, and in the longer term, multi-touch gestures too. It the Blender
>> Conference it struck me just how many people were carrying not only
>> laptops, but shiny new Macbook Pro's, all of which support multitouch
>> gestures in the trackpad.
>> 
>> At the moment it's really inefficient moving around in 3D using a
>> laptop, and tapping into multitouch can really help make pans, orbits
>> and zooms fast and natural for laptop users. We can explore different
>> ways of using multiple fingers and scrolling to make these things much
>> easier for laptop users, like:
>> 
>> Two-finger scrolling: pan around in any direction
>> Alt + two-finger scrolling: Orbit around
>> Three-finger scrolling: zoom
>> 
>> This way the two-finger scrolling becomes nice and consistent, but we
>> can just as easily explore other mappings.
>> 
>> Cheers,
>> 
>> -William
>> 
>> 
>> 
>> On 5 Nov, 2009, at 10:52 AM, Damien Plisson wrote:
>> 
>>> Hi James,
>>> 
>>> I agree with you that the handling of the trackpad features of the
>>> macbooks would be very useful, especially since they don't provide a
>>> MMB, and that LMB and RMB can't be pressed at the same time.
>>> 
>>> I'll more in favor of a smooth option (your second one, the first one
>>> is too jerky especially for rotate), with the handling of the two
>>> other gestures (pinch & rotate for zoom & rotation).
>>> These two are documented in the 10.6 SDK, but are functional, though
>>> undocumented from 10.5. And it should even be possible to have them
>>> included in a 10.4 built (even if functional only 10.5+).
>>> 
>>> Anyway, these need more important changes in non OSX (thus
>>> multiplatform) parts of Blender code.
>>> One idea for such "additional per OS" features would be to provide an
>>> "operator call" event to ghost, to provide OS specific options while
>>> maintaining a cross-platform common base in WM/event.
>>> But this is more a long term objective at a very early brainstorming
>>> status.
>>> 
>>> We need the UI experts advice too for this...
>>> 
>>> Damien
>>> 
>>> 
>>> Le 5 nov. 2009 à 00:46, James Deery a écrit :
>>> 
>>>> Hi,
>>>> 
>>>> I've been playing with Blender recently and couldn't help feeling it
>>>> could benefit from supporting horizontal scrolling. Particularly the
>>>> full two dimensional scrolling provided by OS X, and especially the
>>>> two finger scrolling on the trackpads. I've had a look at the event
>>>> system and have come up with two ways of doing this.
>>>> 
>>>> The first is simply to add extra parameters and constants to the
>>>> various mouse wheel events to allow for left and right wheel events.
>>>> This seems to easily apply to Windows and X11 too.
>>>> 
>>>> But OS X handles scroll events differently, more like pixel based
>>>> mouse movement than the click-based events on Windows and X11, so I
>>>> though about creating a new event type, distinct from "wheel"  
>>>> events.
>>>> I called this a "mouse pan". I ended up changing a lot more with  
>>>> this
>>>> approach, including additions to the view operators. This gives much
>>>> smoother scrolling and almost works for non-constrained zooming, but
>>>> needs a fair bit more work.
>>>> 
>>>> So I have two patches, both only apply to OS X at the moment:
>>>> 
>>>> http://demo.jadex.org/scroll-simple.patch
>>>> http://demo.jadex.org/scroll-pan.patch
>>>> 
>>>> I don't think either are ready to apply as they are and I'm sure
>>>> there
>>>> will be differing opinions on my key mapping. The first patch would
>>>> obviously work better cross-platform, but I think something is
>>>> potentially being missed. So is it worth me continuing down the
>>>> second
>>>> root? Ie, is there any chance of it being accepted?
>>>> 
>>>> Any comments and suggestions?
>>>> 
>>>> James
>>>> _______________________________________________
>>>> 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
> 
> _______________________________________________
> 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