when a playlist is relayered, relayer ghost regions too

This commit is contained in:
Paul Davis 2023-06-25 12:44:35 -06:00
parent b5c9c6a5c4
commit b3de53eb95
6 changed files with 19 additions and 6 deletions

View File

@ -1849,3 +1849,4 @@ MidiTimeAxisView::create_velocity_automation_child (Evoral::Parameter const &, b
add_automation_child (Evoral::Parameter(MidiVelocityAutomation), velocity_track, show);
}

View File

@ -657,6 +657,16 @@ RegionView::lower_to_bottom ()
_region->lower_to_bottom ();
}
void
RegionView::visual_layer_on_top ()
{
get_canvas_group()->raise_to_top ();
for (auto& ghost : ghosts) {
ghost->group->raise_to_top ();
}
}
bool
RegionView::set_position (timepos_t const & pos, void* /*src*/, double* ignored)
{

View File

@ -82,6 +82,7 @@ public:
void move (double xdelta, double ydelta);
void visual_layer_on_top();
void raise_to_top ();
void lower_to_bottom ();

View File

@ -294,7 +294,7 @@ StreamView::layer_regions()
// Fix canvas layering by raising each to the top in the sorted order.
for (RegionViewList::iterator i = copy.begin(); i != copy.end(); ++i) {
(*i)->get_canvas_group()->raise_to_top ();
(*i)->visual_layer_on_top ();
}
}

View File

@ -153,7 +153,7 @@ protected:
void display_track (std::shared_ptr<ARDOUR::Track>);
virtual void undisplay_track ();
void layer_regions ();
void layer_regions ();
void playlist_switched (std::weak_ptr<ARDOUR::Track>);

View File

@ -96,10 +96,11 @@ public:
virtual void drag_end();
bool dragging() const { return _dragging; }
virtual void raise () { return; }
virtual void raise_to_top () { return; }
virtual void lower () { return; }
virtual void lower_to_bottom () { return; }
virtual void visual_layer_on_top() {}
virtual void raise () {}
virtual void raise_to_top () {}
virtual void lower () {}
virtual void lower_to_bottom () {}
/** @return true if the name area should respond to events */
bool name_active() const { return name_connected; }