View Issue Details

IDProjectCategoryView StatusLast Update
0005020ardourbugspublic2012-07-20 01:58
ReporterKyleJohnston Assigned To 
PrioritynormalSeveritytweakReproducibilityalways
Status newResolutionopen 
Product Version2.8.12 
Target Version3.X 
Summary0005020: Reverse Fader Scrolling to account for Lion's Reversed Scrolling
DescriptionIn Lion scrolling down on the trackpad moves the faders up. Effects are similarly reversed when scrolling up, or left/right for horizontal faders.
TagsNo tags attached.

Activities

paul

2012-07-20 01:07

administrator   ~0013907

I don't think we can fix this properly in Ardour itself. It really needs a fix in GTK itself (the GUI toolkit we use), and this will take some to design and implement. The fact that the value that indicates "scroll up" goes from being a constant to a variable is quite a substantive issue.

KyleJohnston

2012-07-20 01:22

reporter   ~0013909

@paul So you couldn't just reverse the code to consider "down scrolling" as raising the volume and "up scrolling" as lowering the volume when on Mac?

paul

2012-07-20 01:58

administrator   ~0013910

it doesn't really work that way. if you're not a programmer (you might be, i don't know) there are several layers of abstraction between what the touchpad delivers to the CPU as you use it, and what any given program sees.

in ardour's case, we get events (which originated in the trackpad but then travel through the Darwin kernel, then the display server, then Cocoa, then GDK, then GTK) that tell us "the input device sent a Scroll message, and the direction was Up" (for example).

the problem is that in GDK/GTK/Cocoa, the typical way to test for this is to use a constant value that represents either Up or Down, because until Lion went this route, it *was* a constant. to handle Lion's behaviour in ardour, we'd have to change EVERY single place where we make this comparison (we use scroll events all over the place). Not only do we have to change the comparison, but we have to change the code quite substantially: in C and C++ comparing to the value of a constant value can be done much more efficiently than comparing to the value of a variable, so we use the efficient mechanism.

if we change Up/Down into a variable (I tried it before my previous comment), all that code becomes illegal C/C++, and has to be converted.

GTK should handle this for us (and for every other GTK app, such as GIMP and others). its not jst about faders, its above every place where we scroll up/down, and its not just about ardour.

Issue History

Date Modified Username Field Change
2012-07-16 19:15 KyleJohnston New Issue
2012-07-20 01:07 paul cost => 0.00
2012-07-20 01:07 paul Note Added: 0013907
2012-07-20 01:07 paul Target Version => 3.X
2012-07-20 01:22 KyleJohnston Note Added: 0013909
2012-07-20 01:58 paul Note Added: 0013910