From 8f405f36579cdd00798d3179e05a6c6bb1201657 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 22 Oct 2023 17:14:45 -0600 Subject: [PATCH] provide preference for scrolling-adjusts-note-velocity --- gtk2_ardour/midi_region_view.cc | 26 +++++++++++++++----------- gtk2_ardour/rc_option_editor.cc | 10 +++++++++- gtk2_ardour/ui_config_vars.h | 1 + 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 0d99c7c690..4a00e69096 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -734,20 +734,24 @@ MidiRegionView::scroll (GdkEventScroll* ev) hide_verbose_cursor (); - bool fine = !Keyboard::modifier_state_contains (ev->state, Keyboard::SecondaryModifier); - Keyboard::ModifierMask mask_together(Keyboard::PrimaryModifier|Keyboard::TertiaryModifier); - bool together = Keyboard::modifier_state_contains (ev->state, mask_together); + if (UIConfiguration::instance().get_scroll_velocity_editing()) { + bool fine = !Keyboard::modifier_state_contains (ev->state, Keyboard::SecondaryModifier); + Keyboard::ModifierMask mask_together(Keyboard::PrimaryModifier|Keyboard::TertiaryModifier); + bool together = Keyboard::modifier_state_contains (ev->state, mask_together); - if (ev->direction == GDK_SCROLL_UP) { - change_velocities (true, fine, false, together); - } else if (ev->direction == GDK_SCROLL_DOWN) { - change_velocities (false, fine, false, together); - } else { - /* left, right: we don't use them */ - return false; + if (ev->direction == GDK_SCROLL_UP) { + change_velocities (true, fine, false, together); + } else if (ev->direction == GDK_SCROLL_DOWN) { + change_velocities (false, fine, false, together); + } else { + /* left, right: we don't use them */ + return false; + } + + return true; } - return true; + return false; } bool diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index f584743392..cd302f3f8d 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -3517,7 +3517,7 @@ These settings will only take effect after %1 is restarted.\n\ -1, 65536, 1, 10 )); - add_option (_("MIDI"), new OptionEditorHeading (_("Selection"))); + add_option (_("MIDI"), new OptionEditorHeading (_("Editing"))); add_option (_("MIDI"), new BoolOption ( @@ -3527,6 +3527,14 @@ These settings will only take effect after %1 is restarted.\n\ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_select_last_drawn_note_only) )); + add_option (_("MIDI"), + new BoolOption ( + "scroll_velocity_editing", + _("Scroll wheel use when editing MIDI adjusts selected note velocity"), + sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_scroll_velocity_editing), + sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_scroll_velocity_editing) + )); + add_option (_("MIDI"), new OptionEditorHeading (_("Audition"))); add_option (_("MIDI"), diff --git a/gtk2_ardour/ui_config_vars.h b/gtk2_ardour/ui_config_vars.h index 34d6e207db..48737a69fa 100644 --- a/gtk2_ardour/ui_config_vars.h +++ b/gtk2_ardour/ui_config_vars.h @@ -162,3 +162,4 @@ UI_CONFIG_VARIABLE (bool, sandbox_all_lua_scripts, "sandbox-all-lua-scripts", fa UI_CONFIG_VARIABLE (bool, show_on_cue_page, "show-on-cue-page", true) UI_CONFIG_VARIABLE (uint32_t, insert_at_position, "insert-at-position", 3) UI_CONFIG_VARIABLE (Editing::NoteNameDisplay, note_name_display, "note-name-display", Editing::Always) +UI_CONFIG_VARIABLE (bool, scroll_velocity_editing, "scroll-velocity-editing", true)