Merge pull request #98797 from KoBeWi/toastkill_f

Close toasts instantly when Close button is pressed
This commit is contained in:
Thaddeus Crews 2024-11-11 14:18:38 -06:00
commit cea186af2a
No known key found for this signature in database
GPG Key ID: 62181B86FE9E5D84
2 changed files with 7 additions and 1 deletions

View File

@ -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;
}

View File

@ -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();