summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_keyboard.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2008-12-17 00:35:12 +0000
committerCarl Hetherington <carl@carlh.net>2008-12-17 00:35:12 +0000
commitd88b950061e09d5ecc67cec6f08e88718e69be1a (patch)
tree7f7eebf4325e73ba8579e065f5633a43cf08b055 /gtk2_ardour/editor_keyboard.cc
parent2ebb1af2997b8e8f162635b11e8acc5c5d0fe563 (diff)
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
Diffstat (limited to 'gtk2_ardour/editor_keyboard.cc')
-rw-r--r--gtk2_ardour/editor_keyboard.cc24
1 files changed, 23 insertions, 1 deletions
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<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();
+
}
}