diff options
author | nick_m <mainsbridge@gmail.com> | 2017-02-01 02:08:04 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2017-02-04 22:57:36 +1100 |
commit | f336f4e6d1f36cce50f4892a0ece24af8d87c13c (patch) | |
tree | 529b36f44dd7fffff154a88b029a4250df995b86 /gtk2_ardour/editor_ops.cc | |
parent | f96d6894e8a5e6889c2589ba305d78826b076d3f (diff) |
allow "Glue to Bars & Beats" in region menu to be in an inconsistent state.
- toggling an inconsistent lock style sets all selected regions
to AudioTime
Diffstat (limited to 'gtk2_ardour/editor_ops.cc')
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 288d12219f..376dd3f086 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -5743,11 +5743,19 @@ Editor::toggle_region_lock_style () return; } + bool inconsistent = false; + CheckMenuItem* cm = dynamic_cast<CheckMenuItem*> ( + ActionManager::get_widget (X_("/Main/RegionMenu/RegionMenuPosition/toggle-region-lock-style"))); + + if (cm && cm->get_inconsistent()) { + inconsistent = true; + } + begin_reversible_command (_("region lock style")); for (RegionSelection::iterator i = rs.begin(); i != rs.end(); ++i) { (*i)->region()->clear_changes (); - PositionLockStyle const ns = (*i)->region()->position_lock_style() == AudioTime ? MusicTime : AudioTime; + PositionLockStyle const ns = ((*i)->region()->position_lock_style() == AudioTime && !inconsistent) ? MusicTime : AudioTime; (*i)->region()->set_position_lock_style (ns); _session->add_command (new StatefulDiffCommand ((*i)->region())); } |