diff options
Diffstat (limited to 'gtk2_ardour/automation_region_view.cc')
-rw-r--r-- | gtk2_ardour/automation_region_view.cc | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/gtk2_ardour/automation_region_view.cc b/gtk2_ardour/automation_region_view.cc index ab13a99c16..f7c2b6b642 100644 --- a/gtk2_ardour/automation_region_view.cc +++ b/gtk2_ardour/automation_region_view.cc @@ -39,14 +39,16 @@ #include "i18n.h" -AutomationRegionView::AutomationRegionView (ArdourCanvas::Container* parent, - AutomationTimeAxisView& time_axis, - boost::shared_ptr<ARDOUR::Region> region, - const Evoral::Parameter& param, - boost::shared_ptr<ARDOUR::AutomationList> list, - double spu, - uint32_t basic_color) +AutomationRegionView::AutomationRegionView (ArdourCanvas::Container* parent, + AutomationTimeAxisView& time_axis, + boost::shared_ptr<ARDOUR::Region> region, + const Evoral::Parameter& param, + boost::shared_ptr<ARDOUR::AutomationList> list, + double spu, + uint32_t basic_color) : RegionView(parent, time_axis, region, spu, basic_color, true) + , _region_relative_time_converter(region->session().tempo_map(), region->position()) + , _source_relative_time_converter(region->session().tempo_map(), region->position() - region->start()) , _parameter(param) { if (list) { @@ -251,6 +253,15 @@ AutomationRegionView::region_resized (const PBD::PropertyChange& what_changed) { RegionView::region_resized (what_changed); + if (what_changed.contains (ARDOUR::Properties::position)) { + _region_relative_time_converter.set_origin_b(_region->position()); + } + + if (what_changed.contains (ARDOUR::Properties::start) || + what_changed.contains (ARDOUR::Properties::position)) { + _source_relative_time_converter.set_origin_b (_region->position() - _region->start()); + } + if (!_line) { return; } |