Browse Source

UI: Process deleteLater() tasks in OBSBasic::ClearSceneData

Causes QObject::deleteLater() events to be processed immediately in
OBSBasic::ClearSceneData() to ensure no lingering source or scene item
references remain
jp9000 4 years ago
parent
commit
e4f0c21252
1 changed files with 4 additions and 0 deletions
  1. 4 0
      UI/window-basic-main.cpp

+ 4 - 0
UI/window-basic-main.cpp

@@ -4563,6 +4563,10 @@ void OBSBasic::ClearSceneData()
 
 	undo_s.clear();
 
+	/* using QEvent::DeferredDelete explicitly is the only way to ensure
+	 * that deleteLater events are processed at this point */
+	QApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete);
+
 	disableSaving--;
 
 	blog(LOG_INFO, "All scene data cleared");