13
0

Revert incorrect 'optimisation' from 4f7a4cd233.

- fixes regression in stacked layering display.
This commit is contained in:
nick_m 2016-07-10 02:11:36 +10:00
parent 23da9acf7e
commit 0e2ed90cfc
2 changed files with 32 additions and 17 deletions

View File

@ -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));

View File

@ -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();