From f2eea8b7cec9c6a085082efc5fdb31bfca7831e9 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 12 Jul 2025 10:28:49 -0600 Subject: [PATCH] reduce jumping note range in MIDI displays when adding notes --- gtk2_ardour/midi_streamview.cc | 4 +++- gtk2_ardour/midi_view.cc | 12 ++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/gtk2_ardour/midi_streamview.cc b/gtk2_ardour/midi_streamview.cc index fcf546a7ed..b266129dbd 100644 --- a/gtk2_ardour/midi_streamview.cc +++ b/gtk2_ardour/midi_streamview.cc @@ -207,7 +207,9 @@ MidiStreamView::display_region (MidiRegionView* region_view, bool) return; } - _range_dirty = update_data_note_range (source->model()->lowest_note(), source->model()->highest_note()); + if (!source->model()->empty()) { + _range_dirty = update_data_note_range (source->model()->lowest_note(), source->model()->highest_note()); + } // Display region contents region_view->display_model (source->model()); diff --git a/gtk2_ardour/midi_view.cc b/gtk2_ardour/midi_view.cc index efcc82dc4d..6a832deea3 100644 --- a/gtk2_ardour/midi_view.cc +++ b/gtk2_ardour/midi_view.cc @@ -1165,18 +1165,18 @@ MidiView::model_changed() if (!notes.empty()) { low_note = _model->lowest_note (); hi_note = _model->highest_note (); + + _midi_context.update_data_note_range (low_note, hi_note); + + if (_midi_context.visibility_range_style() == MidiViewBackground::ContentsRange) { + maybe_set_note_range (low_note, hi_note); + } } else { /* Pick a reasonable default range if the model is mepty */ low_note = UIConfiguration::instance().get_default_lower_midi_note(); hi_note = UIConfiguration::instance().get_default_upper_midi_note(); } - _midi_context.update_data_note_range (low_note, hi_note); - - if (_midi_context.visibility_range_style() == MidiViewBackground::ContentsRange) { - maybe_set_note_range (low_note, hi_note); - } - for (auto & note : notes) { bool visible;