son't try to select non-existent notes after editing (and thus crash).
[ardour.git] / gtk2_ardour / midi_region_view.cc
index 76209d6c59cdba1d885c1918fb33e01b02077880..fdd5f1b744e6ed9b8c3c6f8c5555d632bdf4eafd 100644 (file)
@@ -1675,7 +1675,7 @@ MidiRegionView::note_in_region_range (const boost::shared_ptr<NoteType> note, bo
 
        /* must compare double explicitly as Beats::operator< rounds to ppqn */
        const bool outside = (note->time().to_double() < midi_reg->start_beats() ||
-                             note->time().to_double() > midi_reg->start_beats() + midi_reg->length_beats());
+                             note->time().to_double() >= midi_reg->start_beats() + midi_reg->length_beats());
 
        visible = (note->note() >= midi_stream_view()->lowest_note()) &&
                (note->note() <= midi_stream_view()->highest_note());
@@ -3756,7 +3756,7 @@ MidiRegionView::update_ghost_note (double x, double y, uint32_t state)
        const Evoral::Beats snapped_beats = snap_frame_to_grid_underneath (unsnapped_frame, divisions, shift_snap);
 
        /* prevent Percussive mode from displaying a ghost hit at region end */
-       if (!shift_snap && snapped_beats >= midi_region()->length_beats()) {
+       if (!shift_snap && snapped_beats >= midi_region()->start_beats() + midi_region()->length_beats()) {
                _ghost_note->hide();
                hide_verbose_cursor ();
                return;