From fb673953ca5a61389e92474a1f966ce37cbc4499 Mon Sep 17 00:00:00 2001 From: Nikola Bunjevac Date: Mon, 10 Oct 2022 21:22:25 +0200 Subject: [PATCH 1/2] Resize project dialog only when necessary --- editor/project_manager.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index c6fcdc890c2..5a1eedd8a23 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -143,7 +143,11 @@ private: install_status_rect->set_texture(new_icon); } - set_size(Size2(500, 0) * EDSCALE); + Size2i window_size = get_size(); + Size2 contents_min_size = get_contents_minimum_size(); + if (window_size.x < contents_min_size.x || window_size.y < contents_min_size.y) { + set_size(window_size.max(contents_min_size)); + } } String _test_path() { From d7e9b8af9a28a49e8d2a0d1aaa89cdce8a50277a Mon Sep 17 00:00:00 2001 From: Nikola Bunjevac Date: Mon, 10 Oct 2022 21:24:28 +0200 Subject: [PATCH 2/2] Set window size after setting new limits Otherwise this can fail as the size may not fit into current limits. This is problematic at least on X11. --- scene/main/window.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scene/main/window.cpp b/scene/main/window.cpp index 7fb3f32d36e..9df8ed40e9b 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -651,9 +651,9 @@ void Window::_update_window_size() { DisplayServer::get_singleton()->window_set_min_size(Size2i(), window_id); } - DisplayServer::get_singleton()->window_set_size(size, window_id); DisplayServer::get_singleton()->window_set_max_size(max_size_valid ? max_size : Size2i(), window_id); DisplayServer::get_singleton()->window_set_min_size(size_limit, window_id); + DisplayServer::get_singleton()->window_set_size(size, window_id); } //update the viewport