Compare commits

...

2 Commits

2 changed files with 32 additions and 27 deletions

View File

@ -7103,6 +7103,10 @@ Editor::mid_track_drag (GdkEventMotion* ev, Gtk::Widget& w)
void
Editor::end_track_drag ()
{
if (!track_drag) {
return;
}
if (track_drag->have_predrag_cursor) {
gdk_window_set_cursor (edit_controls_vbox.get_toplevel()->get_window()->gobj(), track_drag->predrag_cursor);
}

View File

@ -1024,34 +1024,35 @@ Region::modify_front_unchecked (timepos_t const & npos, bool reset_fade)
source_zero = timepos_t (source_position().time_domain()); // its actually negative, but this will work for us
}
if (new_position < last) { /* can't trim it zero or negative length */
timecnt_t newlen (_length);
timepos_t np = new_position;
if (!can_trim_start_before_source_start ()) {
/* can't trim it back past where source position zero is located */
np = max (np, source_zero);
}
if (np > position()) {
newlen = length() - (position().distance (np));
} else {
newlen = length() + (np.distance (position()));
}
trim_to_internal (np, newlen);
if (reset_fade) {
_right_of_split = true;
}
if (!property_changes_suspended()) {
recompute_at_start ();
}
maybe_invalidate_transients ();
if (new_position >= last) { /* can't trim it zero or negative length */
return;
}
timecnt_t newlen (_length);
timepos_t np = new_position;
if (!can_trim_start_before_source_start ()) {
/* can't trim it back past where source position zero is located */
np = max (np, source_zero);
}
if (np > position()) {
newlen = length() - (position().distance (np));
} else {
newlen = length() + (np.distance (position()));
}
trim_to_internal (np, newlen);
if (reset_fade) {
_right_of_split = true;
}
if (!property_changes_suspended()) {
recompute_at_start ();
}
maybe_invalidate_transients ();
}
void