mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-30 17:03:06 +01:00
Revert incorrect 'optimisation' from 4f7a4cd233.
- fixes regression in stacked layering display.
This commit is contained in:
parent
23da9acf7e
commit
0e2ed90cfc
2 changed files with 32 additions and 17 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue