Set main window min. size via Window object instead of DisplayServer to preserve it during window updates.

This commit is contained in:
bruvzg 2023-01-03 09:25:45 +02:00
parent c5bfe1303a
commit 06551dfa3a
No known key found for this signature in database
GPG key ID: 7960FCF39844EC38
4 changed files with 9 additions and 6 deletions

View file

@ -6113,7 +6113,10 @@ EditorNode::EditorNode() {
}
// Define a minimum window size to prevent UI elements from overlapping or being cut off.
DisplayServer::get_singleton()->window_set_min_size(Size2(1024, 600) * EDSCALE);
Window *w = Object::cast_to<Window>(SceneTree::get_singleton()->get_root());
if (w) {
w->set_min_size(Size2(1024, 600) * EDSCALE);
}
FileDialog::set_default_show_hidden_files(EDITOR_GET("filesystem/file_dialog/show_hidden_files"));
EditorFileDialog::set_default_show_hidden_files(EDITOR_GET("filesystem/file_dialog/show_hidden_files"));

View file

@ -3008,7 +3008,10 @@ ProjectManager::ProjectManager() {
SceneTree::get_singleton()->get_root()->connect("files_dropped", callable_mp(this, &ProjectManager::_files_dropped));
// Define a minimum window size to prevent UI elements from overlapping or being cut off.
DisplayServer::get_singleton()->window_set_min_size(Size2(520, 350) * EDSCALE);
Window *w = Object::cast_to<Window>(SceneTree::get_singleton()->get_root());
if (w) {
w->set_min_size(Size2(520, 350) * EDSCALE);
}
// Resize the bootsplash window based on Editor display scale EDSCALE.
float scale_factor = MAX(1, EDSCALE);

View file

@ -2902,10 +2902,6 @@ bool Main::start() {
DisplayServer::get_singleton()->window_set_title(appname);
#endif
// Define a very small minimum window size to prevent bugs such as GH-37242.
// It can still be overridden by the user in a script.
DisplayServer::get_singleton()->window_set_min_size(Size2i(64, 64));
bool snap_controls = GLOBAL_GET("gui/common/snap_controls_to_pixels");
sml->get_root()->set_snap_controls_to_pixels(snap_controls);

View file

@ -1397,6 +1397,7 @@ SceneTree::SceneTree() {
// Create with mainloop.
root = memnew(Window);
root->set_min_size(Size2i(64, 64)); // Define a very small minimum window size to prevent bugs such as GH-37242.
root->set_process_mode(Node::PROCESS_MODE_PAUSABLE);
root->set_name("root");
root->set_title(GLOBAL_GET("application/config/name"));