Pārlūkot izejas kodu

Close toasts instantly when Close button is pressed

kobewi 10 mēneši atpakaļ
vecāks
revīzija
cb7304662b
2 mainītis faili ar 7 papildinājumiem un 1 dzēšanām
  1. 6 1
      editor/gui/editor_toaster.cpp
  2. 1 0
      editor/gui/editor_toaster.h

+ 6 - 1
editor/gui/editor_toaster.cpp

@@ -375,7 +375,7 @@ Control *EditorToaster::popup(Control *p_control, Severity p_severity, double p_
 	if (p_time > 0.0) {
 		Button *close_button = memnew(Button);
 		close_button->set_flat(true);
-		close_button->connect(SceneStringName(pressed), callable_mp(this, &EditorToaster::close).bind(panel));
+		close_button->connect(SceneStringName(pressed), callable_mp(this, &EditorToaster::instant_close).bind(panel));
 		hbox_container->add_child(close_button);
 
 		toast.close_button = close_button;
@@ -501,6 +501,11 @@ void EditorToaster::close(Control *p_control) {
 	toasts[p_control].popped = false;
 }
 
+void EditorToaster::instant_close(Control *p_control) {
+	close(p_control);
+	p_control->set_modulate(Color(1, 1, 1, 0));
+}
+
 EditorToaster *EditorToaster::get_singleton() {
 	return singleton;
 }

+ 1 - 0
editor/gui/editor_toaster.h

@@ -115,6 +115,7 @@ public:
 	Control *popup(Control *p_control, Severity p_severity = SEVERITY_INFO, double p_time = 0.0, const String &p_tooltip = String());
 	void popup_str(const String &p_message, Severity p_severity = SEVERITY_INFO, const String &p_tooltip = String());
 	void close(Control *p_control);
+	void instant_close(Control *p_control);
 
 	EditorToaster();
 	~EditorToaster();