浏览代码

Add screen size check on `popup`

Septian 2 年之前
父节点
当前提交
34210e812a
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      scene/main/window.cpp

+ 4 - 1
scene/main/window.cpp

@@ -1633,7 +1633,10 @@ void Window::popup(const Rect2i &p_screen_rect) {
 
 	if (p_screen_rect != Rect2i()) {
 		set_position(p_screen_rect.position);
-		set_size(p_screen_rect.size);
+		int screen_id = DisplayServer::get_singleton()->get_screen_from_rect(p_screen_rect);
+		Size2i screen_size = DisplayServer::get_singleton()->screen_get_usable_rect(screen_id).size;
+		Size2i new_size = p_screen_rect.size.min(screen_size);
+		set_size(new_size);
 	}
 
 	Rect2i adjust = _popup_adjust_rect();