summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_ops.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-01-30 22:53:22 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-01-30 22:53:22 +0000
commit7629120cda89dd4ec1b03ba4ddcc6f5dd1b0ca5a (patch)
tree8021cafa93fb6bec082a7362261f9040947f5329 /gtk2_ardour/editor_ops.cc
parent664cec21359ba055243c3feaf47c6eb16fccbb3b (diff)
many changes, large and small, related to smart mode editing, range/region selection, and behaviour of playhead when always-play-range is enabled. could be buggy, but probably in subtle (or even very subtle) ways rather than obvious
git-svn-id: svn://localhost/ardour2/branches/3.0@11394 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_ops.cc')
-rw-r--r--gtk2_ardour/editor_ops.cc19
1 files changed, 7 insertions, 12 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 1dd5256d2a..2109b54ad2 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -3594,8 +3594,7 @@ Editor::cut_copy (CutCopyOp op)
/* we only want to cut regions if some are selected */
- switch (current_mouse_mode()) {
- case MouseObject:
+ if (doing_object_stuff()) {
rs = get_regions_from_selection ();
if (!rs.empty() || !selection->points.empty()) {
@@ -3617,15 +3616,15 @@ Editor::cut_copy (CutCopyOp op)
}
}
commit_reversible_command ();
- break; // terminate case statement here
+ goto out;
}
- if (!selection->time.empty()) {
+ if (!selection->time.empty() && (_join_object_range_state == JOIN_OBJECT_RANGE_NONE)) {
/* don't cause suprises */
- break;
+ goto out;
}
- // fall thru if there was nothing selected
+ }
- case MouseRange:
+ if (doing_range_stuff()) {
if (selection->time.empty()) {
framepos_t start, end;
if (!get_edit_op_range (start, end)) {
@@ -3641,14 +3640,10 @@ Editor::cut_copy (CutCopyOp op)
if (op == Cut || op == Delete) {
selection->clear_time ();
}
-
- break;
-
- default:
- break;
}
}
+ out:
if (op == Delete || op == Cut || op == Clear) {
_drags->abort ();
}