diff options
| author | Rémi Verschelde <rverschelde@gmail.com> | 2023-12-05 13:05:23 +0100 |
|---|---|---|
| committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-12-05 13:05:23 +0100 |
| commit | 36e033bce8666572a0e56d9de170aae995d5a157 (patch) | |
| tree | e7dcb5b4b6a3250276209d7060a6389ce1ccb58e | |
| parent | 7c8dfea9e320b720a271a4e17bf9b8bda559375a (diff) | |
| parent | d9677be0cab2274a4e53ac34783ba7539b52ab8f (diff) | |
| download | redot-engine-36e033bce8666572a0e56d9de170aae995d5a157.tar.gz | |
Merge pull request #85312 from YuriSizov/window-and-the-case-of-an-unexpected-shrinkage
Make sure `Window`'s title is respected before we compute the size
| -rw-r--r-- | editor/project_manager.cpp | 7 | ||||
| -rw-r--r-- | scene/main/window.cpp | 10 |
2 files changed, 5 insertions, 12 deletions
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index ed01187947..291484600c 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -101,12 +101,6 @@ void ProjectDialog::_set_message(const String &p_msg, MessageType p_type, InputT } else if (current_install_icon != new_icon && input_type == INSTALL_PATH) { install_status_rect->set_texture(new_icon); } - - 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 ProjectDialog::_test_path() { @@ -868,6 +862,7 @@ ProjectDialog::ProjectDialog() { msg = memnew(Label); msg->set_horizontal_alignment(HORIZONTAL_ALIGNMENT_CENTER); + msg->set_custom_minimum_size(Size2(200, 0) * EDSCALE); vb->add_child(msg); // Renderer selection. diff --git a/scene/main/window.cpp b/scene/main/window.cpp index afa69e0c49..a48a336718 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -967,6 +967,10 @@ Size2i Window::_clamp_window_size(const Size2i &p_size) { void Window::_update_window_size() { Size2i size_limit = get_clamped_minimum_size(); + if (!embedder && window_id != DisplayServer::INVALID_WINDOW_ID && keep_title_visible) { + Size2i title_size = DisplayServer::get_singleton()->window_get_title_size(tr_title, window_id); + size_limit = size_limit.max(title_size); + } size = size.max(size_limit); @@ -998,12 +1002,6 @@ void Window::_update_window_size() { } DisplayServer::get_singleton()->window_set_max_size(max_size_used, window_id); - - if (keep_title_visible) { - Size2i title_size = DisplayServer::get_singleton()->window_get_title_size(tr_title, window_id); - size_limit = size_limit.max(title_size); - } - DisplayServer::get_singleton()->window_set_min_size(size_limit, window_id); DisplayServer::get_singleton()->window_set_size(size, window_id); } |
