From 1febe074804a4cf9c9bfcc8ab8e0bbc7cd88a9a6 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 27 Jun 2023 09:19:29 -0600 Subject: [PATCH] lollis: use layering to enable editing of overlapping regions --- gtk2_ardour/midi_region_view.cc | 1 + gtk2_ardour/velocity_ghost_region.cc | 24 +++++++++++------------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index d678cb799b..04b0084994 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -3388,6 +3388,7 @@ MidiRegionView::change_note_length (NoteBase* event, Temporal::Beats t) void MidiRegionView::begin_drag_edit (std::string const & why) { + trackview.editor().get_selection().set (this, true); start_note_diff_command (why); } diff --git a/gtk2_ardour/velocity_ghost_region.cc b/gtk2_ardour/velocity_ghost_region.cc index bf8fdac8dd..a2d5e6acc9 100644 --- a/gtk2_ardour/velocity_ghost_region.cc +++ b/gtk2_ardour/velocity_ghost_region.cc @@ -72,11 +72,6 @@ VelocityGhostRegion::~VelocityGhostRegion () bool VelocityGhostRegion::base_event (GdkEvent* ev) { - if (!selected) { - /* eat event to prevent it passing up th the automation track */ - return true; - } - std::vector affected_lollis; MidiRegionView* mrv = dynamic_cast (&parent_rv); @@ -219,16 +214,14 @@ VelocityGhostRegion::remove_note (NoteBase* nb) void VelocityGhostRegion::set_colors () { - base_rect->set_fill_color (UIConfiguration::instance().color_mod ("ghost track base", "ghost track midi fill")); + if (selected) { + base_rect->set_fill_color (UIConfiguration::instance().color ("ghost track base")); + } else { + base_rect->set_fill_color (UIConfiguration::instance().color_mod ("ghost track base", "ghost track midi fill")); + } for (auto & gev : events) { - if (selected) { - gev.second->item->set_fill_color (gev.second->event->base_color()); - gev.second->item->set_ignore_events (false); - } else { - gev.second->item->set_fill_color (UIConfiguration::instance().color ("ghost track wave")); - gev.second->item->set_ignore_events (true); - } + gev.second->item->set_fill_color (gev.second->event->base_color()); } } @@ -384,4 +377,9 @@ VelocityGhostRegion::set_selected (bool yn) { selected = yn; set_colors (); + + if (yn) { + std::cerr << parent_rv.get_item_name() << " raise to top\n"; + group->raise_to_top (); + } }