summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/editor.cc11
-rw-r--r--gtk2_ardour/time_selection.cc4
2 files changed, 13 insertions, 2 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 5d8ef2b373..e986306976 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -3311,8 +3311,15 @@ Editor::duplicate_range (bool with_dialog)
times = adjustment.get_value();
}
- if (selection->time.length() != 0) {
- duplicate_selection (times);
+ if ((current_mouse_mode() == Editing::MouseRange)) {
+ if (selection->time.length()) {
+ duplicate_selection (times);
+ }
+ } else if (get_smart_mode()) {
+ if (selection->time.length()) {
+ duplicate_selection (times);
+ } else
+ duplicate_some_regions (rs, times);
} else {
duplicate_some_regions (rs, times);
}
diff --git a/gtk2_ardour/time_selection.cc b/gtk2_ardour/time_selection.cc
index 419d82dbcc..a0f33e8c99 100644
--- a/gtk2_ardour/time_selection.cc
+++ b/gtk2_ardour/time_selection.cc
@@ -103,5 +103,9 @@ TimeSelection::end_frame ()
framecnt_t
TimeSelection::length()
{
+ if (empty()) {
+ return 0;
+ }
+
return end_frame() - start() + 1;
}