diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 975b607a43..28d0203362 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -851,7 +851,7 @@ void EditorNode::_notification(int p_what) { command_palette->register_shortcuts_as_command(); - callable_mp(this, &EditorNode::_begin_first_scan).call_deferred(); + _begin_first_scan(); last_dark_mode_state = DisplayServer::get_singleton()->is_dark_mode(); last_system_accent_color = DisplayServer::get_singleton()->get_accent_color(); diff --git a/editor/gui/progress_dialog.cpp b/editor/gui/progress_dialog.cpp index 2f551a4e57..5353faf992 100644 --- a/editor/gui/progress_dialog.cpp +++ b/editor/gui/progress_dialog.cpp @@ -166,6 +166,14 @@ void ProgressDialog::_popup() { center_panel->set_custom_minimum_size(ms); + if (is_ready()) { + _reparent_and_show(); + } else { + callable_mp(this, &ProgressDialog::_reparent_and_show).call_deferred(); + } +} + +void ProgressDialog::_reparent_and_show() { Window *current_window = SceneTree::get_singleton()->get_root()->get_last_exclusive_window(); ERR_FAIL_NULL(current_window); reparent(current_window); diff --git a/editor/gui/progress_dialog.h b/editor/gui/progress_dialog.h index 6a1747ffec..17deeac79c 100644 --- a/editor/gui/progress_dialog.h +++ b/editor/gui/progress_dialog.h @@ -89,6 +89,7 @@ class ProgressDialog : public CenterContainer { void _cancel_pressed(); void _update_ui(); + void _reparent_and_show(); bool canceled = false; protected: