diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 96dd9b27a7..cbd8596ea1 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -142,8 +142,9 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Container* parent, boost::shared_ptr r, double spu, uint32_t basic_color, + bool recording, TimeAxisViewItem::Visibility visibility) - : RegionView (parent, tv, r, spu, basic_color, false, visibility) + : RegionView (parent, tv, r, spu, basic_color, recording, visibility) , _current_range_min(0) , _current_range_max(0) , _region_relative_time_converter(r->session().tempo_map(), r->position()) @@ -340,7 +341,7 @@ MidiRegionView::connect_to_diskstream () bool MidiRegionView::canvas_group_event(GdkEvent* ev) { - if (in_destructor) { + if (in_destructor || _recregion) { return false; } diff --git a/gtk2_ardour/midi_region_view.h b/gtk2_ardour/midi_region_view.h index 56fcbbdde8..a2d364c0d6 100644 --- a/gtk2_ardour/midi_region_view.h +++ b/gtk2_ardour/midi_region_view.h @@ -68,11 +68,20 @@ public: typedef Evoral::Note NoteType; typedef Evoral::Sequence::Notes Notes; - MidiRegionView (ArdourCanvas::Container *, - RouteTimeAxisView&, - boost::shared_ptr, - double initial_samples_per_pixel, - uint32_t base_color); + MidiRegionView (ArdourCanvas::Container* parent, + RouteTimeAxisView& tv, + boost::shared_ptr r, + double samples_per_pixel, + uint32_t basic_color); + + MidiRegionView (ArdourCanvas::Container* parent, + RouteTimeAxisView& tv, + boost::shared_ptr r, + double samples_per_pixel, + uint32_t basic_color, + bool recording, + Visibility visibility); + MidiRegionView (const MidiRegionView& other); MidiRegionView (const MidiRegionView& other, boost::shared_ptr); @@ -322,16 +331,6 @@ public: ARDOUR::InstrumentInfo& instrument_info() const; protected: - /** Allows derived types to specify their visibility requirements - * to the TimeAxisViewItem parent class. - */ - MidiRegionView (ArdourCanvas::Container *, - RouteTimeAxisView&, - boost::shared_ptr, - double samples_per_pixel, - uint32_t basic_color, - TimeAxisViewItem::Visibility); - void region_resized (const PBD::PropertyChange&); void set_flags (XMLNode *); diff --git a/gtk2_ardour/midi_streamview.cc b/gtk2_ardour/midi_streamview.cc index e91a1c683d..d124426cc9 100644 --- a/gtk2_ardour/midi_streamview.cc +++ b/gtk2_ardour/midi_streamview.cc @@ -100,7 +100,7 @@ MidiStreamView::~MidiStreamView () } RegionView* -MidiStreamView::create_region_view (boost::shared_ptr r, bool /*wfd*/, bool) +MidiStreamView::create_region_view (boost::shared_ptr r, bool /*wfd*/, bool recording) { boost::shared_ptr region = boost::dynamic_pointer_cast (r); @@ -108,8 +108,16 @@ MidiStreamView::create_region_view (boost::shared_ptr r, bool /*wfd*/, b return 0; } - RegionView* region_view = new MidiRegionView (_canvas_group, _trackview, region, - _samples_per_pixel, region_color); + RegionView* region_view = NULL; + if (recording) { + region_view = new MidiRegionView ( + _canvas_group, _trackview, region, + _samples_per_pixel, region_color, recording, + TimeAxisViewItem::Visibility(TimeAxisViewItem::ShowFrame)); + } else { + region_view = new MidiRegionView (_canvas_group, _trackview, region, + _samples_per_pixel, region_color); + } region_view->init (false); @@ -488,7 +496,7 @@ MidiStreamView::setup_rec_box () region->set_start (_trackview.track()->current_capture_start() - _trackview.track()->get_capture_start_frame (0)); region->set_position (_trackview.track()->current_capture_start()); - RegionView* rv = add_region_view_internal (region, false); + RegionView* rv = add_region_view_internal (region, false, true); MidiRegionView* mrv = dynamic_cast (rv); mrv->begin_write ();