From b725b7ddb4d4bf03f030864cdc395b58b8aee1ac Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 17 Apr 2022 23:16:50 -0600 Subject: [PATCH] midi editing: scroll in a midi region with no selection will scroll the note range (#8721) --- gtk2_ardour/midi_region_view.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 9c5822d9fa..10aff5e3a7 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -679,7 +679,27 @@ MidiRegionView::scroll (GdkEventScroll* ev) if (trackview.editor().drags()->active()) { return false; } + if (_selection.empty()) { + int step = (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier) ? 1 : 12); + + switch (ev->direction) { + case GDK_SCROLL_UP: + if (midi_stream_view()->highest_note() < 127 - step) { + midi_stream_view()->apply_note_range (midi_stream_view()->lowest_note() + step, midi_stream_view()->highest_note() + step, true); + } + return true; + + case GDK_SCROLL_DOWN: + if (midi_stream_view()->lowest_note() >= step) { + midi_stream_view()->apply_note_range (midi_stream_view()->lowest_note() - step, midi_stream_view()->highest_note() - step, true); + } + return true; + + default: + break; + } + return false; }