diff options
Diffstat (limited to 'gtk2_ardour/audio_streamview.cc')
-rw-r--r-- | gtk2_ardour/audio_streamview.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc index f88b04ae1d..bef35c572c 100644 --- a/gtk2_ardour/audio_streamview.cc +++ b/gtk2_ardour/audio_streamview.cc @@ -253,7 +253,7 @@ AudioStreamView::add_crossfade (Crossfade *crossfade) /* first see if we already have a CrossfadeView for this Crossfade */ for (list<CrossfadeView *>::iterator i = crossfade_views.begin(); i != crossfade_views.end(); ++i) { - if (&(*i)->crossfade == crossfade) { + if ((*i)->crossfade == *crossfade) { if (!crossfades_visible) { (*i)->hide(); } else { @@ -287,7 +287,7 @@ AudioStreamView::add_crossfade (Crossfade *crossfade) crossfade->Invalidated.connect (mem_fun (*this, &AudioStreamView::remove_crossfade)); crossfade_views.push_back (cv); - if (!crossfades_visible) { + if (!Config->get_xfades_visible() || !crossfades_visible) { cv->hide (); } } @@ -312,7 +312,6 @@ AudioStreamView::redisplay_diskstream () list<RegionView *>::iterator i, tmp; list<CrossfadeView*>::iterator xi, tmpx; - for (i = region_views.begin(); i != region_views.end(); ++i) { (*i)->set_valid (false); } @@ -326,6 +325,7 @@ AudioStreamView::redisplay_diskstream () if (_trackview.is_audio_track()) { _trackview.get_diskstream()->playlist()->foreach_region (static_cast<StreamView*>(this), &StreamView::add_region_view); + AudioPlaylist* apl = dynamic_cast<AudioPlaylist*>(_trackview.get_diskstream()->playlist()); if (apl) apl->foreach_crossfade (this, &AudioStreamView::add_crossfade); @@ -357,7 +357,9 @@ AudioStreamView::redisplay_diskstream () /* now fix layering */ - playlist_modified (); + for (RegionViewList::iterator i = region_views.begin(); i != region_views.end(); ++i) { + region_layered (*i); + } } void |