summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-05-28 21:01:37 +0000
committerCarl Hetherington <carl@carlh.net>2012-05-28 21:01:37 +0000
commitdfd842812c038f553e8887e9c07eab9dc09ccf62 (patch)
treebcb5e2e78634e4dc75b17fc9b27d16dfdaca3965
parentec362b39ad0375845e583252c29398e920b97409 (diff)
Deselect MIDI notes when leaving internal edit mode
(part of #4669). git-svn-id: svn://localhost/ardour2/branches/3.0@12471 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/midi_region_view.h3
-rw-r--r--gtk2_ardour/midi_streamview.cc11
-rw-r--r--gtk2_ardour/midi_streamview.h2
3 files changed, 15 insertions, 1 deletions
diff --git a/gtk2_ardour/midi_region_view.h b/gtk2_ardour/midi_region_view.h
index c3084aee38..1b9a2a70b1 100644
--- a/gtk2_ardour/midi_region_view.h
+++ b/gtk2_ardour/midi_region_view.h
@@ -292,6 +292,8 @@ public:
void trim_front_ending ();
void create_note_at (framepos_t, double, double, bool);
+
+ void clear_selection (bool signal = true) { clear_selection_except (0, signal); }
protected:
/** Allows derived types to specify their visibility requirements
@@ -353,7 +355,6 @@ private:
ARDOUR::MidiModel::TimeType end_delta);
void clear_selection_except (ArdourCanvas::CanvasNoteEvent* ev, bool signal = true);
- void clear_selection (bool signal = true) { clear_selection_except (0, signal); }
void update_drag_selection (double last_x, double x, double last_y, double y, bool extend);
void update_vertical_drag_selection (double last_y, double y, bool extend);
diff --git a/gtk2_ardour/midi_streamview.cc b/gtk2_ardour/midi_streamview.cc
index 676aa52028..311327f0ec 100644
--- a/gtk2_ardour/midi_streamview.cc
+++ b/gtk2_ardour/midi_streamview.cc
@@ -647,3 +647,14 @@ MidiStreamView::resume_updates ()
draw_note_lines ();
apply_note_range_to_regions ();
}
+
+void
+MidiStreamView::leave_internal_edit_mode ()
+{
+ StreamView::leave_internal_edit_mode ();
+ for (RegionViewList::iterator i = region_views.begin(); i != region_views.end(); ++i) {
+ MidiRegionView* mrv = dynamic_cast<MidiRegionView*> (*i);
+ assert (mrv);
+ mrv->clear_selection ();
+ }
+}
diff --git a/gtk2_ardour/midi_streamview.h b/gtk2_ardour/midi_streamview.h
index d216752eda..1e6289d63c 100644
--- a/gtk2_ardour/midi_streamview.h
+++ b/gtk2_ardour/midi_streamview.h
@@ -76,6 +76,8 @@ class MidiStreamView : public StreamView
void redisplay_track ();
+ void leave_internal_edit_mode ();
+
inline double contents_height() const
{ return (child_height() - TimeAxisViewItem::NAME_HIGHLIGHT_SIZE - 2); }