diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index 5fe1a261c8..dcdbb3f3b1 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -98,6 +98,19 @@ ARDOUR_UI::set_session (Session *s) { SessionHandlePtr::set_session (s); + /* adjust sensitivity of menu bar options to reflect presence/absence + * of session + */ + + ActionManager::set_sensitive (ActionManager::session_sensitive_actions, _session); + ActionManager::set_sensitive (ActionManager::write_sensitive_actions, _session ? _session->writable() : false); + + if (_session && _session->locations()->num_range_markers()) { + ActionManager::set_sensitive (ActionManager::range_sensitive_actions, true); + } else { + ActionManager::set_sensitive (ActionManager::range_sensitive_actions, false); + } + transport_ctrl.set_session (s); if (big_transport_window) { @@ -148,17 +161,6 @@ ARDOUR_UI::set_session (Session *s) transport_masters_window->set_session (s); rc_option_editor->set_session (s); - /* sensitize menu bar options that are now valid */ - - ActionManager::set_sensitive (ActionManager::session_sensitive_actions, true); - ActionManager::set_sensitive (ActionManager::write_sensitive_actions, _session->writable()); - - if (_session->locations()->num_range_markers()) { - ActionManager::set_sensitive (ActionManager::range_sensitive_actions, true); - } else { - ActionManager::set_sensitive (ActionManager::range_sensitive_actions, false); - } - /* allow wastebasket flush again */ Glib::RefPtr act = ActionManager::get_action (X_("Main"), X_("FlushWastebasket"));