Fix scrollwheel operation in editor.
[ardour.git] / gtk2_ardour / automation_time_axis.cc
index e6186387fe5593353517dab8fa03174839e48c5d..eaed1e519951e80127ea4a8e42488392fc64219d 100644 (file)
@@ -23,6 +23,7 @@
 #include "ardour/automation_control.h"
 #include "ardour/event_type_map.h"
 #include "ardour/route.h"
+#include "ardour/session.h"
 
 #include "ardour_ui.h"
 #include "automation_time_axis.h"
@@ -104,7 +105,9 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
                        mem_fun (_editor, &PublicEditor::canvas_automation_track_event),
                        _base_rect, this));
 
-       // _base_rect->lower_to_bottom();
+       if (!a) {
+               _base_rect->lower_to_bottom();
+       }
 
        hide_button.add (*(manage (new Gtk::Image (::get_icon("hide")))));
 
@@ -151,7 +154,7 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
                        shortened = true;
                }
 
-               plugname = new Label (pname);
+               plugname = new Label (pname);
                plugname->set_name (X_("TrackPlugName"));
                plugname->show();
                name_label.set_name (X_("TrackParameterName"));
@@ -533,7 +536,7 @@ AutomationTimeAxisView::build_display_menu ()
 
        /* mode menu */
 
-       if ( EventTypeMap::instance().is_midi_parameter(_control->parameter()) ) {
+       if (EventTypeMap::instance().is_midi_parameter(_control->parameter())) {
 
                Menu* auto_mode_menu = manage (new Menu);
                auto_mode_menu->set_name ("ArdourContextMenu");
@@ -542,17 +545,18 @@ AutomationTimeAxisView::build_display_menu ()
                RadioMenuItem::Group group;
 
                am_items.push_back (RadioMenuElem (group, _("Discrete"), bind (
-                                               mem_fun(*this, &AutomationTimeAxisView::set_interpolation),
-                                               AutomationList::Discrete)));
+                               mem_fun(*this, &AutomationTimeAxisView::set_interpolation),
+                               AutomationList::Discrete)));
                mode_discrete_item = dynamic_cast<CheckMenuItem*>(&am_items.back());
                mode_discrete_item->set_active(_control->list()->interpolation() == AutomationList::Discrete);
 
-               // For discrete types we dont allow the linear option since it makes no sense for those Controls
+               am_items.push_back (RadioMenuElem (group, _("Linear"), bind (
+                               mem_fun(*this, &AutomationTimeAxisView::set_interpolation),
+                               AutomationList::Linear)));
+               mode_line_item = dynamic_cast<CheckMenuItem*>(&am_items.back());
+
+               // Set default interpolation type to linear if this isn't a (usually) discrete controller
                if (EventTypeMap::instance().interpolation_of(_control->parameter()) == Evoral::ControlList::Linear) {
-                       am_items.push_back (RadioMenuElem (group, _("Line"), bind (
-                                                       mem_fun(*this, &AutomationTimeAxisView::set_interpolation),
-                                                       AutomationList::Linear)));
-                       mode_line_item = dynamic_cast<CheckMenuItem*>(&am_items.back());
                        mode_line_item->set_active(_control->list()->interpolation() == AutomationList::Linear);
                }
 
@@ -594,7 +598,6 @@ AutomationTimeAxisView::add_automation_event (ArdourCanvas::Item* /*item*/, GdkE
        _session.set_dirty ();
 }
 
-
 bool
 AutomationTimeAxisView::cut_copy_clear (Selection& selection, CutCopyOp op)
 {