diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc index c00648ae58..9790bd21df 100644 --- a/gtk2_ardour/midi_time_axis.cc +++ b/gtk2_ardour/midi_time_axis.cc @@ -1849,3 +1849,4 @@ MidiTimeAxisView::create_velocity_automation_child (Evoral::Parameter const &, b add_automation_child (Evoral::Parameter(MidiVelocityAutomation), velocity_track, show); } + diff --git a/gtk2_ardour/region_view.cc b/gtk2_ardour/region_view.cc index db28874868..f0e43bf43a 100644 --- a/gtk2_ardour/region_view.cc +++ b/gtk2_ardour/region_view.cc @@ -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) { diff --git a/gtk2_ardour/region_view.h b/gtk2_ardour/region_view.h index b6d296c4c7..6a71845d03 100644 --- a/gtk2_ardour/region_view.h +++ b/gtk2_ardour/region_view.h @@ -82,6 +82,7 @@ public: void move (double xdelta, double ydelta); + void visual_layer_on_top(); void raise_to_top (); void lower_to_bottom (); diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc index c8e5cd47a3..a222be107d 100644 --- a/gtk2_ardour/streamview.cc +++ b/gtk2_ardour/streamview.cc @@ -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 (); } } diff --git a/gtk2_ardour/streamview.h b/gtk2_ardour/streamview.h index 9c73f974cf..5584dd00c6 100644 --- a/gtk2_ardour/streamview.h +++ b/gtk2_ardour/streamview.h @@ -153,7 +153,7 @@ protected: void display_track (std::shared_ptr); virtual void undisplay_track (); - void layer_regions (); + void layer_regions (); void playlist_switched (std::weak_ptr); diff --git a/gtk2_ardour/time_axis_view_item.h b/gtk2_ardour/time_axis_view_item.h index 9c4999f9d7..7d5e0cee39 100644 --- a/gtk2_ardour/time_axis_view_item.h +++ b/gtk2_ardour/time_axis_view_item.h @@ -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; }