summaryrefslogtreecommitdiffstats
path: root/scene
diff options
context:
space:
mode:
authorbruvzg <7645683+bruvzg@users.noreply.github.com>2020-03-30 16:18:29 +0300
committerbruvzg <7645683+bruvzg@users.noreply.github.com>2020-05-16 14:11:43 +0300
commit08e80ccd999bf8bf2c80d2300097ceb82e3f8c42 (patch)
tree4ef0463047a93f0c11ea5fca3ad7940a3ba058b3 /scene
parent988dd09047aab9f33b172cfb140d4081885c7083 (diff)
downloadredot-engine-08e80ccd999bf8bf2c80d2300097ceb82e3f8c42.tar.gz
Fix popup positions on multiple screens (with same scaling only).
Diffstat (limited to 'scene')
-rw-r--r--scene/main/window.cpp9
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();