diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-11-15 14:32:07 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-11-15 14:32:07 +0100 |
commit | d89c5313a5324185c56e804f2ef3715930093cf4 (patch) | |
tree | cf65d62f59857c4408011bd98009e49c4700dcd3 /editor/progress_dialog.cpp | |
parent | c851a46065c92b9101800502ac8c00fb940cbb55 (diff) | |
parent | 9ae48c72b41d688f27e6a1142a4ea809f068699c (diff) | |
download | redot-engine-d89c5313a5324185c56e804f2ef3715930093cf4.tar.gz |
Merge pull request #83290 from trollodel/move_progress_dialog_on_open
Keep focus on floating window when showing ProgressDialog
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; } |