From 2fd92474d1bdffd6028de284aa251fde8ec2ae04 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 2 Mar 2009 21:07:40 +0000 Subject: [PATCH] keyboard mute action for regions operates on all selected regions (applied to 3.0 already by carl) git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4724 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_keyboard.cc | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/editor_keyboard.cc b/gtk2_ardour/editor_keyboard.cc index 6d8bbda6fd..257ebc487a 100644 --- a/gtk2_ardour/editor_keyboard.cc +++ b/gtk2_ardour/editor_keyboard.cc @@ -78,7 +78,28 @@ Editor::kbd_driver (sigc::slot 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(*((*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(*(entered_regionview->region()->playlist()), &before, &after)); commit_reversible_command(); + } }