summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/automation_time_axis.cc27
-rw-r--r--gtk2_ardour/rc_option_editor.cc10
-rw-r--r--gtk2_ardour/ui_config_vars.h1
3 files changed, 26 insertions, 12 deletions
diff --git a/gtk2_ardour/automation_time_axis.cc b/gtk2_ardour/automation_time_axis.cc
index f575cb2a45..b2902633ae 100644
--- a/gtk2_ardour/automation_time_axis.cc
+++ b/gtk2_ardour/automation_time_axis.cc
@@ -625,21 +625,24 @@ AutomationTimeAxisView::add_automation_event (GdkEvent* event, framepos_t frame,
return;
}
- double x = 0;
-
- _line->grab_item().canvas_to_item (x, y);
-
- /* compute vertical fractional position */
-
- y = 1.0 - (y / _line->height());
-
- /* map using line */
-
- _line->view_to_model_coord (x, y);
-
MusicFrame when (frame, 0);
_editor.snap_to_with_modifier (when, event);
+ if (UIConfiguration::instance().get_new_automation_points_on_lane()) {
+ if (_control->list()->size () == 0) {
+ y = _control->get_value ();
+ } else {
+ y = _control->list()->eval (when.frame);
+ }
+ } else {
+ double x = 0;
+ _line->grab_item().canvas_to_item (x, y);
+ /* compute vertical fractional position */
+ y = 1.0 - (y / _line->height());
+ /* map using line */
+ _line->view_to_model_coord (x, y);
+ }
+
XMLNode& before = list->get_state();
std::list<Selectable*> results;
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index 5a4580f5d4..6af8887bd2 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -2394,6 +2394,16 @@ RCOptionEditor::RCOptionEditor ()
sigc::mem_fun (*_rc_config, &RCConfiguration::set_automation_follows_regions)
));
+ bo = new BoolOption (
+ "new-automation-points-on-lane",
+ _("Ignore Y-axis click position when adding new automation-points"),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_new_automation_points_on_lane),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_new_automation_points_on_lane)
+ );
+ add_option (_("Editor"), bo);
+ Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
+ _("<b>When enabled</b> The new points drawn in any automation lane will be placed on the existing line, regardless of mouse y-axis position."));
+
ComboOption<FadeShape>* fadeshape = new ComboOption<FadeShape> (
"default-fade-shape",
_("Default fade shape"),
diff --git a/gtk2_ardour/ui_config_vars.h b/gtk2_ardour/ui_config_vars.h
index 19147c305a..bbefc91b01 100644
--- a/gtk2_ardour/ui_config_vars.h
+++ b/gtk2_ardour/ui_config_vars.h
@@ -32,6 +32,7 @@ UI_CONFIG_VARIABLE (bool, color_regions_using_track_color, "color-regions-using-
UI_CONFIG_VARIABLE (bool, show_waveform_clipping, "show-waveform-clipping", true)
UI_CONFIG_VARIABLE (uint32_t, lock_gui_after_seconds, "lock-gui-after-seconds", 0)
UI_CONFIG_VARIABLE (bool, draggable_playhead, "draggable-playhead", true)
+UI_CONFIG_VARIABLE (bool, new_automation_points_on_lane, "new-automation-points-on-lane", false)
UI_CONFIG_VARIABLE (std::string, keyboard_layout, "keyboard-layout", "ansi")
UI_CONFIG_VARIABLE (std::string, keyboard_layout_name, "keyboard-layout-name", "ansi")
UI_CONFIG_VARIABLE (std::string, default_bindings, "default-bindings", "ardour")