Fix fencepost error in duplicate_some_regions. Adapt start position.
authorAndré Nusser <andre.nusser@googlemail.com>
Wed, 28 Oct 2015 21:09:39 +0000 (22:09 +0100)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 4 Nov 2015 22:50:12 +0000 (17:50 -0500)
gtk2_ardour/editor_ops.cc

index 6c48fa4e4f149b5573813c1c65cb705105d96711..d749e23914bf5c5a2d806876829dbcdc1e1914aa 100644 (file)
@@ -4775,7 +4775,7 @@ Editor::duplicate_some_regions (RegionSelection& regions, float times)
 
        framepos_t const start_frame = regions.start ();
        framepos_t const end_frame = regions.end_frame ();
-       framecnt_t const gap = end_frame - start_frame;
+       framecnt_t const gap = end_frame - start_frame + 1;
 
        begin_reversible_command (Operations::duplicate_region);
 
@@ -4790,7 +4790,7 @@ Editor::duplicate_some_regions (RegionSelection& regions, float times)
                latest_regionviews.clear ();
                sigc::connection c = rtv->view()->RegionViewAdded.connect (sigc::mem_fun(*this, &Editor::collect_new_region_view));
 
-               framepos_t const position = end_frame + (r->first_frame() - start_frame);
+               framepos_t const position = end_frame + (r->first_frame() - start_frame + 1);
                playlist = (*i)->region()->playlist();
                playlist->clear_changes ();
                playlist->duplicate (r, position, gap, times);
@@ -4841,7 +4841,7 @@ Editor::duplicate_selection (float times)
                } else {
                        end = selection->time.end_frame();
                }
-               playlist->duplicate (*ri, end, times);
+               playlist->duplicate (*ri, end + 1, times);
 
                if (!in_command) {
                        begin_reversible_command (_("duplicate selection"));