Fix quantization and other time-related ops.
[ardour.git] / gtk2_ardour / selection.cc
index 4ebd3a583a706c089054342c2f83f7c863623090..abb49b7daf0c895bf38885068b83bf8f61fc094b 100644 (file)
@@ -399,6 +399,8 @@ Selection::add (const list<boost::shared_ptr<Playlist> >& pllist)
 void
 Selection::add (const TrackViewList& track_list)
 {
+       clear_objects();  //enforce object/range exclusivity
+
        TrackViewList added = tracks.add (track_list);
 
        if (!added.empty()) {
@@ -414,6 +416,8 @@ Selection::add (const TrackViewList& track_list)
 void
 Selection::add (TimeAxisView* track)
 {
+       clear_objects();  //enforce object/range exclusivity
+
        TrackViewList tr;
        track->set_selected (true);
        tr.push_back (track);
@@ -947,7 +951,7 @@ Selection::empty (bool internal_selection)
           as a cut buffer.
        */
 
-       return object_level_empty && midi_notes.empty();
+       return object_level_empty && midi_notes.empty() && points.empty();
 }
 
 void
@@ -998,7 +1002,7 @@ Selection::toggle (list<Selectable*> const & selectables)
                        fatal << _("programming error: ")
                              << X_("unknown selectable type passed to Selection::toggle()")
                              << endmsg;
-                       /*NOTREACHED*/
+                       abort(); /*NOTREACHED*/
                }
        }
 
@@ -1052,7 +1056,7 @@ Selection::add (list<Selectable*> const & selectables)
                        fatal << _("programming error: ")
                              << X_("unknown selectable type passed to Selection::add()")
                              << endmsg;
-                       /*NOTREACHED*/
+                       abort(); /*NOTREACHED*/
                }
        }