diff options
author | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2020-03-30 16:18:29 +0300 |
---|---|---|
committer | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2020-05-16 14:11:43 +0300 |
commit | 08e80ccd999bf8bf2c80d2300097ceb82e3f8c42 (patch) | |
tree | 4ef0463047a93f0c11ea5fca3ad7940a3ba058b3 /scene | |
parent | 988dd09047aab9f33b172cfb140d4081885c7083 (diff) | |
download | redot-engine-08e80ccd999bf8bf2c80d2300097ceb82e3f8c42.tar.gz |
Fix popup positions on multiple screens (with same scaling only).
Diffstat (limited to 'scene')
-rw-r--r-- | scene/main/window.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/scene/main/window.cpp b/scene/main/window.cpp index 6565f02503..b2fc17c0ab 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -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(); |