prevent note-range change signals for every added note in a MidiView
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user