From b173d1ce2c9d9a0d138c5c93deec5c62e3e84c50 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Fri, 15 Oct 2021 22:08:02 -0700 Subject: [PATCH] UI: Disable paste source menu items when removed Disables the "Paste (Reference)" and "Paste (Copy)" for sources when the sources that have been copied have been removed Fixes obsproject/obs-studio#4074 Closes obsproject/obs-studio#4096 --- UI/window-basic-main.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 16cbcac1d..2de43655c 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -7611,12 +7611,21 @@ void OBSBasic::UpdateEditMenu() filter_count = obs_source_filter_count(source); } + for (size_t i = copySources.size(); i > 0; i--) { + const size_t idx = i - 1; + OBSWeakSource &weak = copySources[idx]; + if (obs_weak_source_expired(weak)) + copySources.erase(copySources.begin() + idx); + } + ui->actionCopySource->setEnabled(idx != -1); ui->actionEditTransform->setEnabled(idx != -1); ui->actionCopyTransform->setEnabled(idx != -1); ui->actionCopyFilters->setEnabled(filter_count > 0); ui->actionPasteFilters->setEnabled( !obs_weak_source_expired(copyFiltersSource) && idx != -1); + ui->actionPasteRef->setEnabled(!!copySources.size()); + ui->actionPasteDup->setEnabled(!!copySources.size()); ui->actionMoveUp->setEnabled(idx != -1); ui->actionMoveDown->setEnabled(idx != -1);