Selaa lähdekoodia

Merge pull request #54443 from briansemrau/threadsafe-toast

Make editor toasts threadsafe
Rémi Verschelde 3 vuotta sitten
vanhempi
commit
efbbd14af3
1 muutettua tiedostoa jossa 4 lisäystä ja 3 poistoa
  1. 4 3
      editor/editor_toaster.cpp

+ 4 - 3
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);
 		}
 	}
 }