diff options
Diffstat (limited to 'scene/main/window.cpp')
-rw-r--r-- | scene/main/window.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/scene/main/window.cpp b/scene/main/window.cpp index 6565f02503..a9be8a1eff 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -992,7 +992,7 @@ void Window::popup_centered_ratio(float p_ratio) { ERR_FAIL_COND(!is_inside_tree()); ERR_FAIL_COND_MSG(window_id == DisplayServer::MAIN_WINDOW_ID, "Can't popup the main window."); - Rect2i parent_rect; + Rect2 parent_rect; if (is_embedded()) { parent_rect = get_parent_viewport()->get_visible_rect(); @@ -1024,6 +1024,15 @@ void Window::popup(const Rect2i &p_screen_rect) { set_size(adjust.size); } + int scr = DisplayServer::get_singleton()->get_screen_count(); + for (int i = 0; i < scr; i++) { + Rect2i r = DisplayServer::get_singleton()->screen_get_usable_rect(i); + if (r.has_point(position)) { + current_screen = i; + break; + } + } + set_transient(true); set_visible(true); _post_popup(); |