diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 65230bf333..4d0a1fd270 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -2061,6 +2061,10 @@ Editor::set_edit_point_preference (EditPoint ep, bool force) _edit_point = ep; string str = edit_point_strings[(int)ep]; + if (Profile->get_mixbus()) + if (ep == EditAtSelectedMarker) + ep = EditAtPlayhead; + if (str != edit_point_selector.get_text ()) { edit_point_selector.set_text (str); } @@ -3029,7 +3033,8 @@ Editor::build_edit_point_menu () using namespace Menu_Helpers; edit_point_selector.AddMenuElem (MenuElem ( edit_point_strings[(int)EditAtPlayhead], sigc::bind (sigc::mem_fun(*this, &Editor::edit_point_selection_done), (EditPoint) EditAtPlayhead))); - edit_point_selector.AddMenuElem (MenuElem ( edit_point_strings[(int)EditAtSelectedMarker], sigc::bind (sigc::mem_fun(*this, &Editor::edit_point_selection_done), (EditPoint) EditAtSelectedMarker))); + if(!Profile->get_mixbus()) + edit_point_selector.AddMenuElem (MenuElem ( edit_point_strings[(int)EditAtSelectedMarker], sigc::bind (sigc::mem_fun(*this, &Editor::edit_point_selection_done), (EditPoint) EditAtSelectedMarker))); edit_point_selector.AddMenuElem (MenuElem ( edit_point_strings[(int)EditAtMouse], sigc::bind (sigc::mem_fun(*this, &Editor::edit_point_selection_done), (EditPoint) EditAtMouse))); set_size_request_to_display_given_text (edit_point_selector, edit_point_strings, 30, 2); @@ -3403,6 +3408,9 @@ Editor::snap_mode_selection_done (SnapMode mode) void Editor::cycle_edit_point (bool with_marker) { + if(Profile->get_mixbus()) + with_marker = false; + switch (_edit_point) { case EditAtMouse: set_edit_point_preference (EditAtPlayhead); @@ -4372,6 +4380,10 @@ Editor::get_preferred_edit_position (bool ignore_playhead, bool from_context_men framepos_t where = 0; EditPoint ep = _edit_point; + if(Profile->get_mixbus()) + if (ep == EditAtSelectedMarker) + ep=EditAtPlayhead; + if (from_context_menu && (ep == EditAtMouse)) { return canvas_event_sample (&context_click_event, 0, 0); } diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 7e37b02a08..ea82bc6051 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -504,8 +504,8 @@ Editor::register_actions () RadioAction::Group edit_point_group; ActionManager::register_radio_action (editor_actions, edit_point_group, X_("edit-at-playhead"), _("Playhead"), (sigc::bind (sigc::mem_fun(*this, &Editor::edit_point_chosen), Editing::EditAtPlayhead))); - ActionManager::register_radio_action (editor_actions, edit_point_group, X_("edit-at-mouse"), _("Mouse"), (sigc::bind (sigc::mem_fun(*this, &Editor::edit_point_chosen), Editing::EditAtPlayhead))); - ActionManager::register_radio_action (editor_actions, edit_point_group, X_("edit-at-selected-marker"), _("Marker"), (sigc::bind (sigc::mem_fun(*this, &Editor::edit_point_chosen), Editing::EditAtPlayhead))); + ActionManager::register_radio_action (editor_actions, edit_point_group, X_("edit-at-mouse"), _("Mouse"), (sigc::bind (sigc::mem_fun(*this, &Editor::edit_point_chosen), Editing::EditAtMouse))); + ActionManager::register_radio_action (editor_actions, edit_point_group, X_("edit-at-selected-marker"), _("Marker"), (sigc::bind (sigc::mem_fun(*this, &Editor::edit_point_chosen), Editing::EditAtSelectedMarker))); ActionManager::register_action (editor_actions, "cycle-edit-point", _("Change Edit Point"), sigc::bind (sigc::mem_fun (*this, &Editor::cycle_edit_point), false)); ActionManager::register_action (editor_actions, "cycle-edit-point-with-marker", _("Change Edit Point Including Marker"), sigc::bind (sigc::mem_fun (*this, &Editor::cycle_edit_point), true)); diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 41044a4577..8e16ad9bc6 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -4259,7 +4259,7 @@ SelectionDrag::motion (GdkEvent* event, bool first_move) TrackViewList grouped_add = new_selection; for (TrackViewList::const_iterator i = new_selection.begin(); i != new_selection.end(); ++i) { RouteTimeAxisView *n = dynamic_cast(*i); - if ( n && n->route()->route_group() && n->route()->route_group()->is_active() ) { + if ( n && n->route()->route_group() && n->route()->route_group()->is_active() && n->route()->route_group()->enabled_property (ARDOUR::Properties::select.property_id) ) { for (TrackViewList::const_iterator j = all_tracks.begin(); j != all_tracks.end(); ++j) { RouteTimeAxisView *check = dynamic_cast(*j); if ( check && (n != check) && (check->route()->route_group() == n->route()->route_group()) )