diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index 600f0877ed..7cf3d24d27 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -226,6 +226,7 @@ RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session& sess, boost::sh editor.ZoomChanged.connect (mem_fun(*this, &RouteTimeAxisView::reset_samples_per_unit)); ColorsChanged.connect (mem_fun (*this, &RouteTimeAxisView::color_handler)); + gm.get_gain_slider().signal_scroll_event().connect(mem_fun(*this, &RouteTimeAxisView::controls_ebox_scroll), false); gm.get_gain_slider().set_name ("TrackGainFader"); } diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 325fc6c217..8944fdc082 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -272,6 +272,9 @@ TimeAxisView::controls_ebox_scroll (GdkEventScroll* ev) if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) { step_height (true); return true; + } else if (Keyboard::no_modifiers_active (ev->state)) { + editor.scroll_tracks_up_line(); + return true; } break; @@ -279,6 +282,9 @@ TimeAxisView::controls_ebox_scroll (GdkEventScroll* ev) if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) { step_height (false); return true; + } else if (Keyboard::no_modifiers_active (ev->state)) { + editor.scroll_tracks_down_line(); + return true; } break; @@ -343,11 +349,13 @@ TimeAxisView::hide () void TimeAxisView::step_height (bool bigger) { +static const int step = 20; + if (bigger) { - set_height (height + 4); + set_height (height + step); } else { - if (height > 4) { - set_height (std::max (height - 4, hSmall)); + if (height > step) { + set_height (std::max (height - step, hSmall)); } else if (height != hSmall) { set_height (hSmall); }