summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2017-06-07 12:14:44 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2017-06-07 12:28:53 -0400
commit6ac76734f53b28e3e0bf08c58eb463b16f719d6a (patch)
treed44fdda3207d4bcd644aa8712fc7836a483e8c84
parentca815acd6150669347e15114bd6276d5e133ac6c (diff)
cut buffer must not mess around with libardour selection
Fixes range mode selection/cut/copy that would previously clear track selection
-rw-r--r--gtk2_ardour/editor.cc4
-rw-r--r--gtk2_ardour/selection.cc7
-rw-r--r--gtk2_ardour/selection.h3
3 files changed, 10 insertions, 4 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index b16bce9847..2ba470853a 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -390,8 +390,8 @@ Editor::Editor ()
, _visible_track_count (-1)
, toolbar_selection_clock_table (2,3)
, automation_mode_button (_("mode"))
- , selection (new Selection (this))
- , cut_buffer (new Selection (this))
+ , selection (new Selection (this, true))
+ , cut_buffer (new Selection (this, false))
, _selection_memento (new SelectionMemento())
, _all_region_actions_sensitized (false)
, _ignore_region_action (false)
diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc
index 54dc7a6644..7639d47dbc 100644
--- a/gtk2_ardour/selection.cc
+++ b/gtk2_ardour/selection.cc
@@ -57,10 +57,11 @@ struct AudioRangeComparator {
}
};
-Selection::Selection (const PublicEditor* e)
+Selection::Selection (const PublicEditor* e, bool mls)
: tracks (e)
, editor (e)
, next_time_id (0)
+ , manage_libardour_selection (mls)
{
clear ();
@@ -1544,6 +1545,10 @@ Selection::set (const TrackViewList& track_list)
void
Selection::clear_tracks (bool)
{
+ if (!manage_libardour_selection) {
+ return;
+ }
+
Session* s = editor->session();
if (s) {
CoreSelection& selection (s->selection());
diff --git a/gtk2_ardour/selection.h b/gtk2_ardour/selection.h
index 7e8ba19d7b..307a148c85 100644
--- a/gtk2_ardour/selection.h
+++ b/gtk2_ardour/selection.h
@@ -90,7 +90,7 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList
/** only used when this class is used as a cut buffer */
MidiNoteSelection midi_notes;
- Selection (PublicEditor const * e);
+ Selection (PublicEditor const * e, bool manage_libardour_selection);
// Selection& operator= (const Selection& other);
@@ -230,6 +230,7 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList
private:
PublicEditor const * editor;
uint32_t next_time_id;
+ bool manage_libardour_selection;
TrackViewList add_grouped_tracks (TrackViewList const & t);
};