diff options
Diffstat (limited to 'editor/progress_dialog.cpp')
-rw-r--r-- | editor/progress_dialog.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/editor/progress_dialog.cpp b/editor/progress_dialog.cpp index e5db5f9d30..366d0cb2fc 100644 --- a/editor/progress_dialog.cpp +++ b/editor/progress_dialog.cpp @@ -147,6 +147,13 @@ void ProgressDialog::_popup() { main->set_offset(SIDE_BOTTOM, -style->get_margin(SIDE_BOTTOM)); if (!is_inside_tree()) { + for (Window *window : host_windows) { + if (window->has_focus()) { + popup_exclusive_centered(window, ms); + return; + } + } + // No host window found, use main window. EditorInterface::get_singleton()->popup_dialog_centered(this, ms); } } @@ -226,6 +233,11 @@ void ProgressDialog::end_task(const String &p_task) { } } +void ProgressDialog::add_host_window(Window *p_window) { + ERR_FAIL_NULL(p_window); + host_windows.push_back(p_window); +} + void ProgressDialog::_cancel_pressed() { canceled = true; } |