diff options
author | Brian Semrau <brian.semrau@gmail.com> | 2021-10-30 23:27:13 -0400 |
---|---|---|
committer | Brian Semrau <brian.semrau@gmail.com> | 2021-10-30 23:27:13 -0400 |
commit | 3d9c5648df630a3218f5b7b0ed236b93701cf648 (patch) | |
tree | 98da2c7109df8f6f7a704bb84b0fe82cf2410bfb | |
parent | 727c51f35d29e36d199aedafb7b2c683a55bf44d (diff) |
Make editor toasts threadsafe
-rw-r--r-- | editor/editor_toaster.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/editor/editor_toaster.cpp b/editor/editor_toaster.cpp index 9de0ea40fe..22da12b59b 100644 --- a/editor/editor_toaster.cpp +++ b/editor/editor_toaster.cpp @@ -172,10 +172,11 @@ void EditorToaster::_error_handler(void *p_self, const char *p_func, const char } } - if (p_type == ERR_HANDLER_WARNING) { - EditorToaster::get_singleton()->popup_str(err_str, SEVERITY_WARNING, tooltip_str); + Severity severity = (p_type == ERR_HANDLER_WARNING) ? SEVERITY_WARNING : SEVERITY_ERROR; + if (Thread::get_caller_id() != Thread::get_main_id()) { + EditorToaster::get_singleton()->call_deferred(SNAME("popup_str"), err_str, severity, tooltip_str); } else { - EditorToaster::get_singleton()->popup_str(err_str, SEVERITY_ERROR, tooltip_str); + EditorToaster::get_singleton()->popup_str(err_str, severity, tooltip_str); } } } |