summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_region_view.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-01-05 03:52:30 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-01-05 03:52:30 +0000
commit51aec9a331a4fc2f023921c4754000d144b4484d (patch)
treed4f33bb8460b9eebaaacd9784065cdd8e3d0c826 /gtk2_ardour/midi_region_view.cc
parenta23811502c638be8b5c896f03fb218b8c9301a7b (diff)
get the MIDI list editor working a little better and a little more
git-svn-id: svn://localhost/ardour2/branches/3.0@6453 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_region_view.cc')
-rw-r--r--gtk2_ardour/midi_region_view.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 24f167a6c7..bf6dfa7a2c 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -89,6 +89,7 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &
, _pressed_button(0)
, _sort_needed (true)
, _optimization_iterator (_events.end())
+ , _list_editor (0)
{
_note_group->raise_to_top();
}
@@ -110,6 +111,7 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &
, _pressed_button(0)
, _sort_needed (true)
, _optimization_iterator (_events.end())
+ , _list_editor (0)
{
_note_group->raise_to_top();
@@ -132,6 +134,7 @@ MidiRegionView::MidiRegionView (const MidiRegionView& other)
, _pressed_button(0)
, _sort_needed (true)
, _optimization_iterator (_events.end())
+ , _list_editor (0)
{
Gdk::Color c;
int r,g,b,a;
@@ -157,6 +160,7 @@ MidiRegionView::MidiRegionView (const MidiRegionView& other, boost::shared_ptr<M
, _pressed_button(0)
, _sort_needed (true)
, _optimization_iterator (_events.end())
+ , _list_editor (0)
{
Gdk::Color c;
int r,g,b,a;
@@ -517,8 +521,10 @@ MidiRegionView::canvas_event(GdkEvent* ev)
void
MidiRegionView::show_list_editor ()
{
- MidiListEditor* mle = new MidiListEditor (trackview.session(), midi_region());
- mle->show ();
+ if (!_list_editor) {
+ _list_editor = new MidiListEditor (trackview.session(), midi_region());
+ }
+ _list_editor->present ();
}
/** Add a note to the model, and the view, at a canvas (click) coordinate.
@@ -938,6 +944,8 @@ MidiRegionView::~MidiRegionView ()
{
in_destructor = true;
+ delete _list_editor;
+
RegionViewGoingAway (this); /* EMIT_SIGNAL */
if (_active_notes) {