From e6ec3c87de352d1cb8c6a08790a236f0ceb1a452 Mon Sep 17 00:00:00 2001 From: Clayton Groeneveld Date: Thu, 12 Mar 2020 16:07:05 -0500 Subject: [PATCH] UI: Fix filter rename crash --- UI/window-basic-filters.cpp | 5 +++++ UI/window-basic-filters.hpp | 2 ++ 2 files changed, 7 insertions(+) diff --git a/UI/window-basic-filters.cpp b/UI/window-basic-filters.cpp index e4ac0d5f0..c314f17b9 100644 --- a/UI/window-basic-filters.cpp +++ b/UI/window-basic-filters.cpp @@ -738,6 +738,9 @@ void OBSBasicFilters::CustomContextMenu(const QPoint &pos, bool async) void OBSBasicFilters::EditItem(QListWidgetItem *item, bool async) { + if (editActive) + return; + Qt::ItemFlags flags = item->flags(); OBSSource filter = item->data(Qt::UserRole).value(); const char *name = obs_source_get_name(filter); @@ -748,6 +751,7 @@ void OBSBasicFilters::EditItem(QListWidgetItem *item, bool async) list->removeItemWidget(item); list->editItem(item); item->setFlags(flags); + editActive = true; } void OBSBasicFilters::on_asyncFilters_customContextMenuRequested( @@ -814,6 +818,7 @@ void OBSBasicFilters::FilterNameEdited(QWidget *editor, QListWidget *list) listItem->setText(QString()); SetupVisibilityItem(list, listItem, filter); + editActive = false; } void OBSBasicFilters::AsyncFilterNameEdited( diff --git a/UI/window-basic-filters.hpp b/UI/window-basic-filters.hpp index 19860e672..ff7f5d1d3 100644 --- a/UI/window-basic-filters.hpp +++ b/UI/window-basic-filters.hpp @@ -74,6 +74,8 @@ private: int noPreviewMargin; + bool editActive = false; + private slots: void AddFilter(OBSSource filter); void RemoveFilter(OBSSource filter);