diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index b9712be19f..754b10f4da 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -1739,7 +1739,7 @@ Editor::add_region_context_items (StreamView* sv, boost::shared_ptr regi break; } - bbt_glue_item->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &Editor::set_region_lock_style), Region::MusicTime)); + bbt_glue_item->signal_activate().connect (sigc::mem_fun (*this, &Editor::toggle_region_lock_style)); items.push_back (CheckMenuElem (_("Mute"))); CheckMenuItem* region_mute_item = static_cast(&items.back()); diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index aa8f8579ee..ca6ff920c8 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -1040,7 +1040,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void toggle_region_lock (); void toggle_region_opaque (); void toggle_record_enable (); - void set_region_lock_style (ARDOUR::Region::PositionLockStyle); + void toggle_region_lock_style (); void raise_region (); void raise_region_to_top (); void lower_region (); diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index c2a0158a93..f4a8e81b9c 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -458,7 +458,7 @@ Editor::register_actions () act = ActionManager::register_toggle_action (editor_actions, "lock-region", _("Lock Region"), sigc::mem_fun(*this, &Editor::toggle_region_lock)); ActionManager::session_sensitive_actions.push_back (act); ActionManager::region_selection_sensitive_actions.push_back (act); - act = ActionManager::register_toggle_action (editor_actions, "glue-region", _("Glue Region to Bars and Beats"), sigc::bind (sigc::mem_fun (*this, &Editor::set_region_lock_style), Region::MusicTime)); + act = ActionManager::register_toggle_action (editor_actions, "glue-region", _("Glue Region to Bars and Beats"), sigc::mem_fun (*this, &Editor::toggle_region_lock_style)); ActionManager::session_sensitive_actions.push_back (act); ActionManager::region_selection_sensitive_actions.push_back (act); act = ActionManager::register_action (editor_actions, "naturalize-region", _("Move to Original Position"), sigc::mem_fun (*this, &Editor::naturalize)); diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 5022c2ed56..464c540bfb 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -4884,7 +4884,7 @@ Editor::toggle_region_lock () } void -Editor::set_region_lock_style (Region::PositionLockStyle ps) +Editor::toggle_region_lock_style () { RegionSelection rs = get_equivalent_regions (selection->regions, ARDOUR::Properties::edit.property_id); @@ -4896,7 +4896,8 @@ Editor::set_region_lock_style (Region::PositionLockStyle ps) for (RegionSelection::iterator i = rs.begin(); i != rs.end(); ++i) { (*i)->region()->clear_history (); - (*i)->region()->set_position_lock_style (ps); + Region::PositionLockStyle const ns = (*i)->region()->positional_lock_style() == Region::AudioTime ? Region::MusicTime : Region::AudioTime; + (*i)->region()->set_position_lock_style (ns); _session->add_command (new StatefulDiffCommand ((*i)->region())); }