From 237741d18722252abd4a6a20d3422315481ccffe Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 19 Jun 2014 15:06:48 -0400 Subject: ensure that all waveviews have ALL their colors set accurately before first render Avoids occasional bright red zero line drawn because the color(s) had not been reset correctly --- gtk2_ardour/audio_region_view.cc | 12 +++++++++++- gtk2_ardour/audio_region_view.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/audio_region_view.cc b/gtk2_ardour/audio_region_view.cc index 38dcc5c386..928902bf42 100644 --- a/gtk2_ardour/audio_region_view.cc +++ b/gtk2_ardour/audio_region_view.cc @@ -1157,6 +1157,10 @@ AudioRegionView::create_one_wave (uint32_t which, bool /*direct*/) wave->set_logscaled (Config->get_waveform_scale() == Logarithmic); + vector v; + v.push_back (wave); + set_some_waveform_colors (v); + if (!Config->get_show_waveforms ()) { wave->hide(); } @@ -1390,6 +1394,12 @@ AudioRegionView::color_handler () void AudioRegionView::set_waveform_colors () +{ + set_some_waveform_colors (waves); +} + +void +AudioRegionView::set_some_waveform_colors (vector& waves_to_color) { ArdourCanvas::Color fill; ArdourCanvas::Color outline; @@ -1435,7 +1445,7 @@ AudioRegionView::set_waveform_colors () } } - for (vector::iterator w = waves.begin(); w != waves.end(); ++w) { + for (vector::iterator w = waves_to_color.begin(); w != waves_to_color.end(); ++w) { (*w)->set_fill_color (fill); (*w)->set_outline_color (outline); (*w)->set_clip_color (clip); diff --git a/gtk2_ardour/audio_region_view.h b/gtk2_ardour/audio_region_view.h index 20caea17c1..ffadce0c59 100644 --- a/gtk2_ardour/audio_region_view.h +++ b/gtk2_ardour/audio_region_view.h @@ -205,6 +205,7 @@ private: void parameter_changed (std::string const &); void setup_waveform_visibility (); + void set_some_waveform_colors (std::vector& waves_to_color); /** A ScopedConnection for each PeaksReady callback (one per channel). Each member * may be 0 if no connection exists. -- cgit v1.2.3