From 2056a41ca591ffcb866c800c8f776aa20ecf176f 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 38e3ac42d..b6111caa2 100644 --- a/UI/window-projector.cpp +++ b/UI/window-projector.cpp @@ -626,11 +626,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); }