diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 880a57065d..72e4deab0b 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -1302,6 +1302,7 @@ Editor::set_session (Session *t) _session->auto_loop_location_changed.connect (_session_connections, invalidator (*this), std::bind (&Editor::loop_location_changed, this, _1), gui_context ()); _session->RecordPassCompleted.connect (_session_connections, invalidator (*this), std::bind (&Editor::capture_sources_changed, this, false), gui_context ()); _session->ClearedLastCaptureSources.connect (_session_connections, invalidator (*this), std::bind (&Editor::capture_sources_changed, this, true), gui_context ()); + _session->RecordStateChanged.connect (_session_connections, invalidator (*this), std::bind (&Editor::capture_sources_changed, this, false), gui_context ()); Location::flags_changed.connect (_session_connections, invalidator (*this), std::bind (&Editor::update_section_rects, this), gui_context ()); _session->history().Changed.connect (_session_connections, invalidator (*this), std::bind (&Editor::history_changed, this), gui_context()); diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index 7f5b023fdd..e74a8bd09c 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -1018,7 +1018,7 @@ Editor::marker_click_behavior_chosen (Editing::MarkerClickBehavior m) void Editor::capture_sources_changed (bool cleared) { - if (cleared || !_session) { + if (cleared || !_session || _session->actively_recording ()) { ActionManager::get_action (X_("Editor"), X_("remove-last-capture"))->set_sensitive (false); } else { ActionManager::get_action (X_("Editor"), X_("remove-last-capture"))->set_sensitive (_session->have_last_capture_sources ());