summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_selection.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/editor_selection.cc')
-rw-r--r--gtk2_ardour/editor_selection.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc
index 6cd022cce1..1408351d47 100644
--- a/gtk2_ardour/editor_selection.cc
+++ b/gtk2_ardour/editor_selection.cc
@@ -795,6 +795,27 @@ Editor::region_selection_changed ()
(*i)->set_selected_regionviews (selection->regions);
}
+ bool have_selected_regions = !selection->regions.empty();
+
+ for (vector<Glib::RefPtr<Action> >::iterator x = ActionManager::region_selection_sensitive_actions.begin();
+ x != ActionManager::region_selection_sensitive_actions.end(); ++x) {
+
+ string accel_path = (*x)->get_accel_path ();
+ AccelKey key;
+
+ /* if there is an accelerator, it should always be sensitive
+ to allow for keyboard ops on entered regions.
+ */
+
+ bool known = ActionManager::lookup_entry (accel_path, key);
+
+ if (known && ((key.get_key() != GDK_VoidSymbol) && (key.get_key() != 0))) {
+ (*x)->set_sensitive (true);
+ } else {
+ (*x)->set_sensitive (have_selected_regions);
+ }
+ }
+
zoomed_to_region = false;
}