summaryrefslogtreecommitdiff
path: root/gtk2_ardour/automation_region_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/automation_region_view.cc')
-rw-r--r--gtk2_ardour/automation_region_view.cc25
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;
}