summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-07-12 11:19:34 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-07-12 11:19:49 -0400
commit774ad0752ab0f5ba7ae86e0d90ae622df3b41777 (patch)
tree0da177454c1b3b9936695cb01f06e6b9e7b5ac0c /gtk2_ardour
parent472ef8c55cc976a581721392ffc1e3a2209ad1fe (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.cc4
-rw-r--r--gtk2_ardour/editor_ops.cc6
-rw-r--r--gtk2_ardour/location_ui.cc9
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;
}