From 20f4dce7a06cf5bf33141800a395587662d5b600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gilles=20Roudi=C3=A8re?= Date: Tue, 19 Oct 2021 17:18:45 +0200 Subject: [PATCH] Fix EditorToaster constant update and prevent a crash --- editor/editor_toaster.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/editor/editor_toaster.cpp b/editor/editor_toaster.cpp index 0d45a7f1d8c..9de0ea40fe7 100644 --- a/editor/editor_toaster.cpp +++ b/editor/editor_toaster.cpp @@ -35,7 +35,7 @@ #include "editor_toaster.h" -EditorToaster *EditorToaster::singleton; +EditorToaster *EditorToaster::singleton = nullptr; void EditorToaster::_notification(int p_what) { switch (p_what) { @@ -90,8 +90,10 @@ void EditorToaster::_notification(int p_what) { // Hide element if it is not visible anymore. if (modulate.a <= 0) { - element.key->hide(); - needs_update = true; + if (element.key->is_visible()) { + element.key->hide(); + needs_update = true; + } } } @@ -141,7 +143,7 @@ void EditorToaster::_notification(int p_what) { } void EditorToaster::_error_handler(void *p_self, const char *p_func, const char *p_file, int p_line, const char *p_error, const char *p_errorexp, bool p_editor_notify, ErrorHandlerType p_type) { - if (!EditorToaster::get_singleton()) { + if (!EditorToaster::get_singleton() || !EditorToaster::get_singleton()->is_inside_tree()) { return; }