Fix menu item text corrupted by search & replace.
[ardour.git] / gtk2_ardour / automation_region_view.cc
index 4d8f61fed5ac3df801a68adf1b13f8202e6c076a..08376d823f09e4a0f0253a58e4886a0469e24db1 100644 (file)
@@ -22,7 +22,9 @@
 #include "ardour/event_type_map.h"
 #include "ardour/session.h"
 #include "ardour/source.h"
+
 #include "automation_region_view.h"
+#include "gui_thread.h"
 #include "public_editor.h"
 
 #include "i18n.h"
@@ -42,7 +44,8 @@ AutomationRegionView::AutomationRegionView(ArdourCanvas::Group*
                create_line(list);
        }
 
-       group->signal_event().connect (mem_fun (this, &AutomationRegionView::canvas_event), false);
+       group->signal_event().connect (sigc::mem_fun (this, &AutomationRegionView::canvas_event), false);
+       group->raise_to_top();
 }
 
 void
@@ -58,7 +61,7 @@ AutomationRegionView::init (Gdk::Color const & basic_color, bool /*wfd*/)
 
        set_height (trackview.current_height());
 
-       _region->StateChanged.connect (mem_fun(*this, &AutomationRegionView::region_changed));
+       _region->PropertyChanged.connect (*this, invalidator (*this), ui_bind (&RegionView::region_changed, this, _1), gui_context());
 
        set_colors ();
 
@@ -73,16 +76,15 @@ AutomationRegionView::create_line (boost::shared_ptr<ARDOUR::AutomationList> lis
                                trackview, *get_canvas_group(), list, &_time_converter));
        _line->set_colors();
        _line->set_interpolation(list->interpolation());
+       _line->set_height ((uint32_t)rint(trackview.current_height() - NAME_HIGHLIGHT_SIZE));
        _line->show();
        _line->show_all_control_points();
-       _line->set_height ((uint32_t)rint(trackview.current_height() - NAME_HIGHLIGHT_SIZE));
 }
 
 bool
 AutomationRegionView::canvas_event(GdkEvent* ev)
 {
        if (ev->type == GDK_BUTTON_RELEASE) {
-
                const nframes_t when = trackview.editor().pixel_to_frame((nframes_t)ev->button.x)
                        - _region->position();
                add_automation_event(ev, when, ev->button.y);
@@ -103,7 +105,7 @@ AutomationRegionView::add_automation_event (GdkEvent* /*event*/, nframes_t when,
        }
        assert(_line);
 
-       double x = 0;
+       double x = when;
        AutomationTimeAxisView* const view = automation_view();
 
        view->canvas_display()->w2i (x, y);
@@ -117,16 +119,16 @@ AutomationRegionView::add_automation_event (GdkEvent* /*event*/, nframes_t when,
 
        _line->view_to_model_coord (x, y);
 
-       view->session().begin_reversible_command (_("add automation event"));
+       view->session()->begin_reversible_command (_("add automation event"));
        XMLNode& before = _line->the_list()->get_state();
 
-       _line->the_list()->add (when, y);
+       _line->the_list()->add (x, y);
 
        XMLNode& after = _line->the_list()->get_state();
-       view->session().commit_reversible_command (new MementoCommand<ARDOUR::AutomationList>(
+       view->session()->commit_reversible_command (new MementoCommand<ARDOUR::AutomationList>(
                        *_line->the_list(), &before, &after));
 
-       view->session().set_dirty ();
+       view->session()->set_dirty ();
 }
 
 void
@@ -156,7 +158,7 @@ AutomationRegionView::reset_width_dependent_items (double pixel_width)
 
 
 void
-AutomationRegionView::region_resized (ARDOUR::Change what_changed)
+AutomationRegionView::region_resized (const PBD::PropertyChange& what_changed)
 {
        RegionView::region_resized(what_changed);