Preserve region state as well as playlist state in undo of bounce range. Fixes ...
authorCarl Hetherington <carl@carlh.net>
Thu, 10 Jun 2010 22:56:46 +0000 (22:56 +0000)
committerCarl Hetherington <carl@carlh.net>
Thu, 10 Jun 2010 22:56:46 +0000 (22:56 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@7252 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor_ops.cc

index 9b14bcdaaf11f6bdf10c059901c6a7ade5c7bf05..9206f1516bfc1a2581d69237d028a346e5ec58d3 100644 (file)
@@ -3662,6 +3662,8 @@ Editor::bounce_range_selection (bool replace, bool enable_processing)
                InterThreadInfo itt;
 
                 playlist->clear_history ();
+               playlist->clear_owned_history ();
+               
                boost::shared_ptr<Region> r = rtv->track()->bounce_range (start, start+cnt, itt, enable_processing);
 
                if (replace) {
@@ -3671,7 +3673,13 @@ Editor::bounce_range_selection (bool replace, bool enable_processing)
                        playlist->add_region (r, start);
                }
 
-               _session->add_command (new StatefulDiffCommand (playlist));
+               vector<StatefulDiffCommand*> cmds;
+               playlist->rdiff (cmds);
+               for (vector<StatefulDiffCommand*>::iterator j = cmds.begin(); j != cmds.end(); ++j) {
+                       _session->add_command (*j);
+               }
+
+                _session->add_command (new StatefulDiffCommand (playlist));
        }
 
        commit_reversible_command ();