Fix crash when removing child during focus exit.

This commit is contained in:
ajreckof 2023-06-23 01:47:05 +02:00
parent c1ad74d4c3
commit f745299c36

View File

@ -2427,10 +2427,12 @@ void Viewport::_gui_control_grab_focus(Control *p_control) {
return;
}
get_tree()->call_group("_viewports", "_gui_remove_focus_for_window", (Node *)get_base_window());
gui.key_focus = p_control;
emit_signal(SNAME("gui_focus_changed"), p_control);
p_control->notification(Control::NOTIFICATION_FOCUS_ENTER);
p_control->queue_redraw();
if (p_control->is_inside_tree() && p_control->get_viewport() == this) {
gui.key_focus = p_control;
emit_signal(SNAME("gui_focus_changed"), p_control);
p_control->notification(Control::NOTIFICATION_FOCUS_ENTER);
p_control->queue_redraw();
}
}
void Viewport::_gui_accept_event() {