diff options
author | Carl Hetherington <carl@carlh.net> | 2008-12-17 00:35:12 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2008-12-17 00:35:12 +0000 |
commit | d88b950061e09d5ecc67cec6f08e88718e69be1a (patch) | |
tree | 7f7eebf4325e73ba8579e065f5633a43cf08b055 /gtk2_ardour/editor_keyboard.cc | |
parent | 2ebb1af2997b8e8f162635b11e8acc5c5d0fe563 (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.cc | 24 |
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(); + } } |