summaryrefslogtreecommitdiffstats
path: root/editor/progress_dialog.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-11-15 14:32:07 +0100
committerRémi Verschelde <rverschelde@gmail.com>2023-11-15 14:32:07 +0100
commitd89c5313a5324185c56e804f2ef3715930093cf4 (patch)
treecf65d62f59857c4408011bd98009e49c4700dcd3 /editor/progress_dialog.cpp
parentc851a46065c92b9101800502ac8c00fb940cbb55 (diff)
parent9ae48c72b41d688f27e6a1142a4ea809f068699c (diff)
downloadredot-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.cpp12
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;
}