Make ArdourFader's scroll handler obey to Alignment increments
authorJulien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr>
Sun, 24 Sep 2017 19:20:20 +0000 (21:20 +0200)
committerJulien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr>
Sun, 24 Sep 2017 20:58:59 +0000 (22:58 +0200)
Currently, the scroll handler obeys to the page increment, but instead
of using the step increment for more precise scroll, it uses an
hardcoded one tenth of the page increment.

Use the step increment instead since it has been filled with sensible
values by ArdourFader's users.

libs/widgets/ardour_fader.cc

index e48c9f6ae586e05361ea3f20914aabc260869dee..76478ffeaefc2a42a37a8b262d4b04781885d415 100644 (file)
@@ -490,27 +490,27 @@ ArdourFader::on_button_release_event (GdkEventButton* ev)
 bool
 ArdourFader::on_scroll_event (GdkEventScroll* ev)
 {
-       double scale;
+       double increment = 0;
        bool ret = false;
 
        if (ev->state & Keyboard::GainFineScaleModifier) {
                if (ev->state & Keyboard::GainExtraFineScaleModifier) {
-                       scale = 0.005;
+                       increment = 0.05 * _adjustment.get_step_increment();
                } else {
-                       scale = 0.1;
+                       increment = _adjustment.get_step_increment();
                }
        } else {
-               scale = 1.0;
+               increment = _adjustment.get_page_increment();
        }
 
        if (_orien == VERT) {
                switch (ev->direction) {
                        case GDK_SCROLL_UP:
-                               _adjustment.set_value (_adjustment.get_value() + (_adjustment.get_page_increment() * scale));
+                               _adjustment.set_value (_adjustment.get_value() + increment);
                                ret = true;
                                break;
                        case GDK_SCROLL_DOWN:
-                               _adjustment.set_value (_adjustment.get_value() - (_adjustment.get_page_increment() * scale));
+                               _adjustment.set_value (_adjustment.get_value() - increment);
                                ret = true;
                                break;
                        default:
@@ -526,11 +526,11 @@ ArdourFader::on_scroll_event (GdkEventScroll* ev)
 
                switch (dir) {
                        case GDK_SCROLL_RIGHT:
-                               _adjustment.set_value (_adjustment.get_value() + (_adjustment.get_page_increment() * scale));
+                               _adjustment.set_value (_adjustment.get_value() + increment);
                                ret = true;
                                break;
                        case GDK_SCROLL_LEFT:
-                               _adjustment.set_value (_adjustment.get_value() - (_adjustment.get_page_increment() * scale));
+                               _adjustment.set_value (_adjustment.get_value() - increment);
                                ret = true;
                                break;
                        default: