diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-07-12 11:19:34 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-07-12 11:19:49 -0400 |
commit | 774ad0752ab0f5ba7ae86e0d90ae622df3b41777 (patch) | |
tree | 0da177454c1b3b9936695cb01f06e6b9e7b5ac0c /gtk2_ardour | |
parent | 472ef8c55cc976a581721392ffc1e3a2209ad1fe (diff) |
GUI side of : once the user has explicitly set the session range end, playlist/range changes do not move it.
The user may drag the marker, edit in the Location UI, or use nudge, to set the end
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 6 | ||||
-rw-r--r-- | gtk2_ardour/location_ui.cc | 9 |
3 files changed, 19 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 4516eefb62..5a0695134f 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -4244,6 +4244,10 @@ MarkerDrag::finished (GdkEvent* event, bool movement_occurred) } else { location->set (((*x).location)->start(), ((*x).location)->end()); } + + if (location->is_session_range()) { + _editor->session()->set_end_is_free (false); + } } } diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 63d3570b8b..50d1bcc24c 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -433,6 +433,9 @@ Editor::nudge_forward (bool next, bool force_playhead) } else { loc->set_end (max_framepos); } + if (loc->is_session_range()) { + _session->set_end_is_free (false); + } } if (!in_command) { begin_reversible_command (_("nudge location forward")); @@ -524,6 +527,9 @@ Editor::nudge_backward (bool next, bool force_playhead) } else { loc->set_end (loc->length()); } + if (loc->is_session_range()) { + _session->set_end_is_free (false); + } } if (!in_command) { begin_reversible_command (_("nudge location forward")); diff --git a/gtk2_ardour/location_ui.cc b/gtk2_ardour/location_ui.cc index e41ad712e4..7dfc2ecbce 100644 --- a/gtk2_ardour/location_ui.cc +++ b/gtk2_ardour/location_ui.cc @@ -420,6 +420,9 @@ LocationEditRow::to_playhead_button_pressed (LocationPart part) break; case LocEnd: location->set_end (_session->transport_frame ()); + if (location->is_session_range()) { + _session->set_end_is_free (false); + } break; default: break; @@ -464,9 +467,15 @@ LocationEditRow::clock_changed (LocationPart part) break; case LocEnd: location->set_end (end_clock.current_time()); + if (location->is_session_range()) { + _session->set_end_is_free (false); + } break; case LocLength: location->set_end (location->start() + length_clock.current_duration()); + if (location->is_session_range()) { + _session->set_end_is_free (false); + } default: break; } |