summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_ops.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-01-09 21:35:41 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-01-09 21:35:41 +0000
commit686e6e2dd8870273ac04cbab877d3f10b27988ba (patch)
tree639426b39b321a32579498412ad79970a9341e33 /gtk2_ardour/editor_ops.cc
parent03e7a268bd67ab9839e92dc41006cd9917f29e27 (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.cc13
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()) {