Просмотр исходного кода

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 лет назад
Родитель
Сommit
e4f0c21252
1 измененных файлов с 4 добавлено и 0 удалено
  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");