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:
parent
2ebb1af299
commit
d88b950061
@ -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();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user