From 66341c756857b3a88daaca7627568617f992ea6d Mon Sep 17 00:00:00 2001 From: cg2121 Date: Thu, 10 Mar 2022 02:22:42 -0600 Subject: [PATCH] UI: Fix handling of remove signal with projectors Since the remove signal is coming from another thread, QMetaObject::invokeMethod has to be used, or corruption could possibly occur. --- UI/window-projector.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/UI/window-projector.cpp b/UI/window-projector.cpp index 7c5d4ce45..98dbe39da 100644 --- a/UI/window-projector.cpp +++ b/UI/window-projector.cpp @@ -665,11 +665,7 @@ void OBSProjector::OBSRender(void *data, uint32_t cx, uint32_t cy) void OBSProjector::OBSSourceRemoved(void *data, calldata_t *params) { OBSProjector *window = reinterpret_cast(data); - - OBSBasic *main = reinterpret_cast(App()->GetMainWindow()); - main->DeleteProjector(window); - allProjectors.removeAll(window); - + QMetaObject::invokeMethod(window, "EscapeTriggered"); UNUSED_PARAMETER(params); }