浏览代码

EditorToaster::popup_str() must always defer to the main MessageQueue

This change is required, because the implementation of call_deferred()
no longer ensures this behaviour: if a MessageQueue is created on a thread,
then that is used instead of the main MessageQueue.
Gergely Kis 7 月之前
父节点
当前提交
d73ebc5948
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      editor/gui/editor_toaster.cpp

+ 1 - 1
editor/gui/editor_toaster.cpp

@@ -412,7 +412,7 @@ void EditorToaster::popup_str(const String &p_message, Severity p_severity, cons
 	// Since "_popup_str" adds nodes to the tree, and since the "add_child" method is not
 	// Since "_popup_str" adds nodes to the tree, and since the "add_child" method is not
 	// thread-safe, it's better to defer the call to the next cycle to be thread-safe.
 	// thread-safe, it's better to defer the call to the next cycle to be thread-safe.
 	is_processing_error = true;
 	is_processing_error = true;
-	callable_mp(this, &EditorToaster::_popup_str).call_deferred(p_message, p_severity, p_tooltip);
+	MessageQueue::get_main_singleton()->push_callable(callable_mp(this, &EditorToaster::_popup_str), p_message, p_severity, p_tooltip);
 	is_processing_error = false;
 	is_processing_error = false;
 }
 }