Session-range behavior (gtk2 part)
authorBen Loftis <ben@harrisonconsoles.com>
Tue, 12 Feb 2019 17:15:34 +0000 (11:15 -0600)
committerBen Loftis <ben@harrisonconsoles.com>
Tue, 12 Feb 2019 17:35:57 +0000 (11:35 -0600)
  * Both the session-start and session-end point should follow the is-free option
  * Rename the end-is-free option to session-range-is-free, to reflect that change
  * This fixes the problem: recording before the start marker would move the Start,
    even if the user had already fixed the End marker.

gtk2_ardour/editor_drag.cc
gtk2_ardour/editor_ops.cc
gtk2_ardour/location_ui.cc

index 0b6b1e34b328b90d82af22acd1256730e7457060..4abcff6141a3d1d22ce11c7681a3f834ab2776c4 100644 (file)
@@ -4688,7 +4688,7 @@ MarkerDrag::finished (GdkEvent* event, bool movement_occurred)
                        }
 
                        if (location->is_session_range()) {
-                               _editor->session()->set_end_is_free (false);
+                               _editor->session()->set_session_range_is_free (false);
                        }
                }
        }
index 961b79a6ad1567e8cf3c13bd99a3ee368d992cf6..c01a8c5fe9735d969e744fc9c80b1c089f5869eb 100644 (file)
@@ -441,7 +441,7 @@ Editor::nudge_forward (bool next, bool force_playhead)
                                                loc->set_end (max_samplepos, false, true, divisions);
                                        }
                                        if (loc->is_session_range()) {
-                                               _session->set_end_is_free (false);
+                                               _session->set_session_range_is_free (false);
                                        }
                                }
                                if (!in_command) {
@@ -535,7 +535,7 @@ Editor::nudge_backward (bool next, bool force_playhead)
                                                loc->set_end (loc->length(), false, true, get_grid_music_divisions(0));
                                        }
                                        if (loc->is_session_range()) {
-                                               _session->set_end_is_free (false);
+                                               _session->set_session_range_is_free (false);
                                        }
                                }
                                if (!in_command) {
@@ -2266,6 +2266,8 @@ Editor::set_session_start_from_playhead ()
 
                commit_reversible_command ();
        }
+
+       _session->set_session_range_is_free (false);
 }
 
 void
@@ -2291,7 +2293,7 @@ Editor::set_session_end_from_playhead ()
                commit_reversible_command ();
        }
 
-       _session->set_end_is_free (false);
+       _session->set_session_range_is_free (false);
 }
 
 
@@ -6600,7 +6602,7 @@ Editor::set_session_extents_from_selection ()
                commit_reversible_command ();
        }
 
-       _session->set_end_is_free (false);
+       _session->set_session_range_is_free (false);
 }
 
 void
index 7f658b9816c13b4ae27dd44968b85c491e275234..306f2ab6d2da233548cc6874c09c97537d6cf53f 100644 (file)
@@ -423,7 +423,7 @@ LocationEditRow::to_playhead_button_pressed (LocationPart part)
                case LocEnd:
                        location->set_end (_session->transport_sample (), false, true,divisions);
                        if (location->is_session_range()) {
-                               _session->set_end_is_free (false);
+                               _session->set_session_range_is_free (false);
                        }
                        break;
                default:
@@ -472,13 +472,13 @@ LocationEditRow::clock_changed (LocationPart part)
                case LocEnd:
                        location->set_end (end_clock.current_time(), false, true, divisions);
                        if (location->is_session_range()) {
-                               _session->set_end_is_free (false);
+                               _session->set_session_range_is_free (false);
                        }
                        break;
                case LocLength:
                        location->set_end (location->start() + length_clock.current_duration(), false, true, divisions);
                        if (location->is_session_range()) {
-                               _session->set_end_is_free (false);
+                               _session->set_session_range_is_free (false);
                        }
                default:
                        break;