Tempo ramps - code layout, check_solved() is lock-style agnostic, remove uncalled...
[ardour.git] / gtk2_ardour / automation_time_axis.cc
index 1c79593b3444b27441cf80fc21e5a6c6170c2c4c..ae0a691710a32138476356a59b80051724ddc5e3 100644 (file)
@@ -628,28 +628,31 @@ AutomationTimeAxisView::add_automation_event (GdkEvent* event, framepos_t when,
 
        double x = 0;
 
-       _canvas_display->canvas_to_item (x, y);
+       _line->grab_item().canvas_to_item (x, y);
 
        /* compute vertical fractional position */
 
-       y = 1.0 - (y / height);
+       y = 1.0 - (y / _line->height());
 
        /* map using line */
 
        _line->view_to_model_coord (x, y);
 
-
        _editor.snap_to_with_modifier (when, event);
 
-       _editor.begin_reversible_command (_("add automation event"));
        XMLNode& before = list->get_state();
+       std::list<Selectable*> results;
+       if (list->editor_add (when, y, with_guard_points)) {
+               XMLNode& after = list->get_state();
+               _editor.begin_reversible_command (_("add automation event"));
+               _session->add_command (new MementoCommand<ARDOUR::AutomationList> (*list.get (), &before, &after));
 
-       list->editor_add (when, y, with_guard_points);
+               _line->get_selectables (when, when, 0.0, 1.0, results);
+               _editor.get_selection ().set (results);
 
-       XMLNode& after = list->get_state();
-       _session->add_command (new MementoCommand<ARDOUR::AutomationList> (*list.get (), &before, &after));
-       _editor.commit_reversible_command ();
-       _session->set_dirty ();
+               _editor.commit_reversible_command ();
+               _session->set_dirty ();
+       }
 }
 
 bool
@@ -870,7 +873,7 @@ AutomationTimeAxisView::what_has_visible_automation (const boost::shared_ptr<Aut
                        const XMLNode* gui_node = ac->extra_xml ("GUI");
 
                        if (gui_node) {
-                               const XMLProperty* prop = gui_node->property ("shown");
+                               XMLProperty const * prop = gui_node->property ("shown");
                                if (prop) {
                                        if (string_is_affirmative (prop->value())) {
                                                visible.insert (i->first);