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
This commit is contained in:
parent
2ebaf2e45a
commit
237741d187
@ -1157,6 +1157,10 @@ AudioRegionView::create_one_wave (uint32_t which, bool /*direct*/)
|
||||
|
||||
wave->set_logscaled (Config->get_waveform_scale() == Logarithmic);
|
||||
|
||||
vector<ArdourCanvas::WaveView*> 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<ArdourCanvas::WaveView*>& waves_to_color)
|
||||
{
|
||||
ArdourCanvas::Color fill;
|
||||
ArdourCanvas::Color outline;
|
||||
@ -1435,7 +1445,7 @@ AudioRegionView::set_waveform_colors ()
|
||||
}
|
||||
}
|
||||
|
||||
for (vector<ArdourCanvas::WaveView*>::iterator w = waves.begin(); w != waves.end(); ++w) {
|
||||
for (vector<ArdourCanvas::WaveView*>::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);
|
||||
|
@ -205,6 +205,7 @@ private:
|
||||
|
||||
void parameter_changed (std::string const &);
|
||||
void setup_waveform_visibility ();
|
||||
void set_some_waveform_colors (std::vector<ArdourCanvas::WaveView*>& waves_to_color);
|
||||
|
||||
/** A ScopedConnection for each PeaksReady callback (one per channel). Each member
|
||||
* may be 0 if no connection exists.
|
||||
|
Loading…
Reference in New Issue
Block a user