Revert incorrect 'optimisation' from 4f7a4cd233
.
- fixes regression in stacked layering display.
This commit is contained in:
parent
23da9acf7e
commit
0e2ed90cfc
@ -775,27 +775,42 @@ RegionView::update_coverage_frames (LayerDisplay d)
|
||||
/* the color that will be used to show parts of regions that will not be heard */
|
||||
uint32_t const non_playing_color = UIConfiguration::instance().color_mod ("covered region", "covered region base");
|
||||
|
||||
t = pl->find_next_region_boundary (t, 1);
|
||||
|
||||
/* is this region is on top at time t? */
|
||||
bool const new_me = (pl->top_unmuted_region_at (t) == _region);
|
||||
while (t < end) {
|
||||
|
||||
/* start off any new rect, if required */
|
||||
if (cr == 0 || me != new_me) {
|
||||
cr = new ArdourCanvas::Rectangle (group);
|
||||
_coverage_frames.push_back (cr);
|
||||
cr->set_x0 (trackview.editor().sample_to_pixel (t - position));
|
||||
cr->set_y0 (1);
|
||||
cr->set_y1 (_height + 1);
|
||||
cr->set_outline (false);
|
||||
cr->set_ignore_events (true);
|
||||
if (new_me) {
|
||||
cr->set_fill_color (UINT_RGBA_CHANGE_A (non_playing_color, 0));
|
||||
} else {
|
||||
cr->set_fill_color (non_playing_color);
|
||||
t++;
|
||||
|
||||
/* is this region is on top at time t? */
|
||||
bool const new_me = (pl->top_unmuted_region_at (t) == _region);
|
||||
/* finish off any old rect, if required */
|
||||
if (cr && me != new_me) {
|
||||
cr->set_x1 (trackview.editor().sample_to_pixel (t - position));
|
||||
}
|
||||
|
||||
/* start off any new rect, if required */
|
||||
if (cr == 0 || me != new_me) {
|
||||
cr = new ArdourCanvas::Rectangle (group);
|
||||
_coverage_frames.push_back (cr);
|
||||
cr->set_x0 (trackview.editor().sample_to_pixel (t - position));
|
||||
cr->set_y0 (1);
|
||||
cr->set_y1 (_height + 1);
|
||||
cr->set_outline (false);
|
||||
cr->set_ignore_events (true);
|
||||
if (new_me) {
|
||||
cr->set_fill_color (UINT_RGBA_CHANGE_A (non_playing_color, 0));
|
||||
} else {
|
||||
cr->set_fill_color (non_playing_color);
|
||||
}
|
||||
}
|
||||
t = pl->find_next_region_boundary (t, 1);
|
||||
if (t < 0) {
|
||||
break;
|
||||
}
|
||||
me = new_me;
|
||||
}
|
||||
|
||||
t = pl->find_next_region_boundary (t, 1);
|
||||
|
||||
if (cr) {
|
||||
/* finish off the last rectangle */
|
||||
cr->set_x1 (trackview.editor().sample_to_pixel (end - position));
|
||||
|
@ -297,7 +297,7 @@ StreamView::playlist_layered (boost::weak_ptr<Track> wtr)
|
||||
if (_layer_display == Stacked) {
|
||||
update_contents_height ();
|
||||
/* tricky. playlist_changed() does this as well, and its really inefficient. */
|
||||
//update_coverage_frames ();
|
||||
update_coverage_frames ();
|
||||
} else {
|
||||
/* layering has probably been modified. reflect this in the canvas. */
|
||||
layer_regions();
|
||||
|
Loading…
Reference in New Issue
Block a user