diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 4f1e50be9e..fa3546f82d 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -7325,6 +7325,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); } diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 5995cf5f0b..ee9a6f7a2d 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -3761,8 +3761,8 @@ Mixer_UI::register_actions () ActionManager::register_action (group, "solo", _("Toggle Solo on Mixer-Selected Tracks/Busses"), sigc::mem_fun (*this, &Mixer_UI::solo_action)); ActionManager::register_action (group, "mute", _("Toggle Mute on Mixer-Selected Tracks/Busses"), sigc::mem_fun (*this, &Mixer_UI::mute_action)); ActionManager::register_action (group, "recenable", _("Toggle Rec-enable on Mixer-Selected Tracks/Busses"), sigc::mem_fun (*this, &Mixer_UI::rec_enable_action)); - ActionManager::register_action (group, "increment-gain", _("Decrease Gain on Mixer-Selected Tracks/Busses"), sigc::mem_fun (*this, &Mixer_UI::step_gain_up_action)); - ActionManager::register_action (group, "decrement-gain", _("Increase Gain on Mixer-Selected Tracks/Busses"), sigc::mem_fun (*this, &Mixer_UI::step_gain_down_action)); + ActionManager::register_action (group, "increment-gain", _("Increase Gain on Mixer-Selected Tracks/Busses"), sigc::mem_fun (*this, &Mixer_UI::step_gain_up_action)); + ActionManager::register_action (group, "decrement-gain", _("Decrease Gain on Mixer-Selected Tracks/Busses"), sigc::mem_fun (*this, &Mixer_UI::step_gain_down_action)); ActionManager::register_action (group, "unity-gain", _("Set Gain to 0dB on Mixer-Selected Tracks/Busses"), sigc::mem_fun (*this, &Mixer_UI::unity_gain_action)); diff --git a/libs/ardour/region.cc b/libs/ardour/region.cc index eba4486513..dfc62da49b 100644 --- a/libs/ardour/region.cc +++ b/libs/ardour/region.cc @@ -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