From: Paul Davis Date: Fri, 8 Jul 2016 12:43:52 +0000 (-0400) Subject: fix region action sensitivity issues. X-Git-Tag: 5.0-pre1~282 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=da0bd3d8a50955a3242b42bd0a752a68a763c4f4;p=ardour.git fix region action sensitivity issues. Desensitize all region actions initially, and toggle that state appropriately when region selection changes --- diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index c5ad620568..1bfad8c7b3 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -2049,6 +2049,6 @@ Editor::register_region_actions () reg_sens (_region_actions, "choose-top-region", _("Choose Top..."), sigc::bind (sigc::mem_fun (*this, &Editor::change_region_layering_order), false)); reg_sens (_region_actions, "choose-top-region-context-menu", _("Choose Top..."), sigc::bind (sigc::mem_fun (*this, &Editor::change_region_layering_order), true)); - _all_region_actions_sensitized = true; - + /* desensitize them all by default. region selection will change this */ + sensitize_all_region_actions (false); } diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc index 639e87a848..ea6c40f1b2 100644 --- a/gtk2_ardour/editor_selection.cc +++ b/gtk2_ardour/editor_selection.cc @@ -1088,7 +1088,6 @@ Editor::sensitize_all_region_actions (bool s) void Editor::sensitize_the_right_region_actions () { - RegionSelection rs = get_regions_from_selection_and_entered (); sensitize_all_region_actions (!rs.empty ()); @@ -1373,11 +1372,15 @@ Editor::region_selection_changed () _regions->block_change_connection (false); editor_regions_selection_changed_connection.block(false); - if (!_all_region_actions_sensitized) { - /* This selection change might have changed what region actions - are allowed, so sensitize them all in case a key is pressed. - */ - sensitize_all_region_actions (true); + if (selection->regions.empty()) { + sensitize_all_region_actions (false); + } else { + if (!_all_region_actions_sensitized) { + /* This selection change might have changed what region actions + are allowed, so sensitize them all in case a key is pressed. + */ + sensitize_all_region_actions (true); + } } if (_session && !_session->transport_rolling() && !selection->regions.empty()) {