13
0

Fix for #2487. Now the keyboard mute/unmute command acts on selected regions if there are any, otherwise it acts on the region under the mouse pointer, if there is one.

git-svn-id: svn://localhost/ardour2/branches/3.0@4327 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2008-12-17 00:35:12 +00:00
parent 2ebb1af299
commit d88b950061

View File

@ -78,7 +78,28 @@ Editor::kbd_driver (sigc::slot<void,GdkEvent*> theslot, bool use_track_canvas, b
void
Editor::kbd_mute_unmute_region ()
{
if (entered_regionview) {
if (!selection->regions.empty ()) {
if (selection->regions.size() > 1) {
begin_reversible_command (_("mute regions"));
} else {
begin_reversible_command (_("mute region"));
}
for (RegionSelection::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) {
XMLNode &before = (*i)->region()->playlist()->get_state ();
(*i)->region()->set_muted (!(*i)->region()->muted ());
XMLNode &after = (*i)->region()->playlist()->get_state ();
session->add_command (new MementoCommand<ARDOUR::Playlist>(*((*i)->region()->playlist()), &before, &after));
}
commit_reversible_command ();
} else if (entered_regionview) {
begin_reversible_command (_("mute region"));
XMLNode &before = entered_regionview->region()->playlist()->get_state();
@ -87,6 +108,7 @@ Editor::kbd_mute_unmute_region ()
XMLNode &after = entered_regionview->region()->playlist()->get_state();
session->add_command (new MementoCommand<ARDOUR::Playlist>(*(entered_regionview->region()->playlist()), &before, &after));
commit_reversible_command();
}
}