prevent note-range change signals for every added note in a MidiView

This commit is contained in:
Paul Davis
2025-02-25 11:43:55 -07:00
parent 0358cec2fc
commit 3928a3a0aa
2 changed files with 15 additions and 0 deletions

View File

@@ -1076,6 +1076,8 @@ MidiView::model_changed()
return;
}
MidiViewBackground::NoteRangeSuspender nrs (_midi_context);
if (_active_notes) {
// Currently recording
const samplecnt_t zoom = _editing_context.get_current_zoom();

View File

@@ -54,6 +54,19 @@ class MidiViewBackground : public virtual ViewBackground
Gtk::Adjustment note_range_adjustment;
struct NoteRangeSuspender {
NoteRangeSuspender (MidiViewBackground& mv) : mvb (mv) {
mvb.NoteRangeChanged.block ();
}
~NoteRangeSuspender() {
mvb.NoteRangeChanged.unblock ();
mvb.NoteRangeChanged(); /* EMIT SIGNAL */
}
MidiViewBackground& mvb;
};
enum VisibleNoteRange {
FullRange,
ContentsRange