Merge pull request #91889 from Calinou/project-manager-tweak-default-window-size

Increase the project manager's default window size
This commit is contained in:
Rémi Verschelde 2025-01-11 22:29:15 +01:00
commit a173b0e173
3 changed files with 20 additions and 4 deletions

View file

@ -150,8 +150,8 @@ void ProjectManager::_build_icon_type_cache(Ref<Theme> p_theme) {
// Main layout.
void ProjectManager::_update_size_limits() {
const Size2 minimum_size = Size2(680, 450) * EDSCALE;
const Size2 default_size = Size2(1024, 600) * EDSCALE;
const Size2 minimum_size = Size2(720, 450) * EDSCALE;
const Size2 default_size = Size2(DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT) * EDSCALE;
// Define a minimum window size to prevent UI elements from overlapping or being cut off.
Window *w = Object::cast_to<Window>(SceneTree::get_singleton()->get_root());
@ -159,8 +159,12 @@ void ProjectManager::_update_size_limits() {
// Calling Window methods this early doesn't sync properties with DS.
w->set_min_size(minimum_size);
DisplayServer::get_singleton()->window_set_min_size(minimum_size);
w->set_size(default_size);
DisplayServer::get_singleton()->window_set_size(default_size);
if (DisplayServer::get_singleton()->window_get_size() == default_size) {
// Only set window size if it currently matches the default, which is defined in `main/main.cpp`.
// This allows CLI arguments to override the window size.
w->set_size(default_size);
DisplayServer::get_singleton()->window_set_size(default_size);
}
}
Rect2i screen_rect = DisplayServer::get_singleton()->screen_get_usable_rect(DisplayServer::get_singleton()->window_get_current_screen());

View file

@ -250,6 +250,9 @@ protected:
public:
static ProjectManager *get_singleton() { return singleton; }
static constexpr int DEFAULT_WINDOW_WIDTH = 1152;
static constexpr int DEFAULT_WINDOW_HEIGHT = 800;
// Project list.
bool is_initialized() const { return initialized; }

View file

@ -2459,6 +2459,15 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
OS::get_singleton()->set_current_rendering_driver_name(rendering_driver);
OS::get_singleton()->set_current_rendering_method(rendering_method);
#ifdef TOOLS_ENABLED
if (!force_res && project_manager) {
// Ensure splash screen size matches the project manager window size
// (see `editor/project_manager.cpp` for defaults).
window_size.width = ProjectManager::DEFAULT_WINDOW_WIDTH;
window_size.height = ProjectManager::DEFAULT_WINDOW_HEIGHT;
}
#endif
if (use_custom_res) {
if (!force_res) {
window_size.width = GLOBAL_GET("display/window/size/viewport_width");