diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index c52dfa1eda..7793d5e63e 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -6946,17 +6946,8 @@ HitCreateDrag::finished (GdkEvent* event, bool had_movement) Beats const start = _region_view->region ()->absolute_time_to_region_beats (timepos_t (aligned_beats)); - /* This code is like MidiRegionView::get_draw_length_beats() but - * defaults to 1/64th note rather than a 1/4 note, since we're in - * percussive mode. - */ - - bool success; - Beats length = _editor->get_draw_length_as_beats (success, pos); - - if (!success) { - length = Beats::ticks (Beats::PPQN / 64); - } + /* Percussive hits are as short as possible */ + Beats length (0, 1); /* create_note_at() implements UNDO for us */ _region_view->create_note_at (timepos_t (start), _y, length, event->button.state, false); diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 04b0084994..01608a67d6 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -4697,9 +4697,13 @@ MidiRegionView::get_grid_beats (timepos_t const & pos) const Temporal::Beats MidiRegionView::get_draw_length_beats (timepos_t const & pos) const { + if (midi_view()->note_mode() == Percussive) { + return Temporal::Beats (0, 1); + } + PublicEditor& editor = trackview.editor(); bool success = false; - Temporal::Beats beats = editor.get_draw_length_as_beats (success, pos); + Temporal::Beats beats = editor.get_draw_length_as_beats (success, pos); if (!success) { beats = Temporal::Beats (1, 0);