diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc index f9bb56a8c0..8b1a7f8f26 100644 --- a/gtk2_ardour/audio_streamview.cc +++ b/gtk2_ardour/audio_streamview.cc @@ -61,8 +61,13 @@ using namespace Editing; AudioStreamView::AudioStreamView (AudioTimeAxisView& tv) : StreamView (tv) { - color_handler (); + /* use a dedicated group for Audio regions (on top of the grid) */ + _region_group = new ArdourCanvas::Container (_canvas_group); + _region_group->raise_to_top (); + _region_group->set_render_with_alpha (UIConfiguration::instance().modifier ("region alpha").a()); + _amplitude_above_axis = 1.0; + color_handler (); } int @@ -100,14 +105,14 @@ AudioStreamView::create_region_view (boost::shared_ptr r, bool wait_for_ case NonLayered: case Normal: if (recording) { - region_view = new AudioRegionView (_canvas_group, _trackview, region, + region_view = new AudioRegionView (_region_group, _trackview, region, _samples_per_pixel, region_color, recording, TimeAxisViewItem::Visibility( TimeAxisViewItem::ShowFrame | TimeAxisViewItem::HideFrameRight | TimeAxisViewItem::HideFrameLeft | TimeAxisViewItem::HideFrameTB)); } else { - region_view = new AudioRegionView (_canvas_group, _trackview, region, + region_view = new AudioRegionView (_region_group, _trackview, region, _samples_per_pixel, region_color); } break; @@ -470,6 +475,8 @@ AudioStreamView::hide_xfades_with (boost::shared_ptr ar) void AudioStreamView::color_handler () { + _region_group->set_render_with_alpha (UIConfiguration::instance().modifier ("region alpha").a()); + //case cAudioTrackBase: if (_trackview.is_track()) { canvas_rect->set_fill_color (UIConfiguration::instance().color_mod ("audio track base", "audio track base")); diff --git a/gtk2_ardour/audio_streamview.h b/gtk2_ardour/audio_streamview.h index b3bef6e127..8d600607da 100644 --- a/gtk2_ardour/audio_streamview.h +++ b/gtk2_ardour/audio_streamview.h @@ -69,6 +69,8 @@ public: void reload_waves (); + ArdourCanvas::Container* region_canvas () const { return _region_group; } + private: void setup_rec_box (); void rec_peak_range_ready (samplepos_t start, ARDOUR::samplecnt_t cnt, boost::weak_ptr src); @@ -85,6 +87,8 @@ private: std::map, bool> rec_data_ready_map; + ArdourCanvas::Container* _region_group; + bool outline_region; };