diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-09 21:35:41 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-01-09 21:35:41 +0000 |
commit | 686e6e2dd8870273ac04cbab877d3f10b27988ba (patch) | |
tree | 639426b39b321a32579498412ad79970a9341e33 /gtk2_ardour/editor_ops.cc | |
parent | 03e7a268bd67ab9839e92dc41006cd9917f29e27 (diff) |
fix setting fade in/out lengths with keyboard to not leave region selected and ignore stupid edit points
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2858 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_ops.cc')
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 45bf4c60d1..edfba0f430 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -4289,16 +4289,16 @@ Editor::toggle_region_opaque () void Editor::set_fade_length (bool in) { - ensure_entered_region_selected (true); + ExclusiveRegionSelection esr (*this, entered_regionview); /* we need a region to measure the offset from the start */ RegionView* rv; - if (entered_regionview) { - rv = entered_regionview; - } else if (!selection->regions.empty()) { + if (!selection->regions.empty()) { rv = selection->regions.front(); + } else if (entered_regionview) { + rv = entered_regionview; } else { return; } @@ -4306,6 +4306,11 @@ Editor::set_fade_length (bool in) nframes64_t pos = get_preferred_edit_position(); nframes_t len; char* cmd; + + if (pos > rv->region()->last_frame() || pos < rv->region()->first_frame()) { + /* edit point is outside the relevant region */ + return; + } if (in) { if (pos <= rv->region()->position()) { |