mirror of
https://github.com/godotengine/godot.git
synced 2025-04-25 01:48:08 +08:00
Increase the project manager's default window size
This makes the project manager feel less cramped when many projects are imported, or when browsing templates in the asset library. On displays smaller than 1152x800 (e.g. 1366x768), window height is automatically limited by DisplayServer when setting the window size. This also tweaks splash screen size when starting the project manager to match the project manager's default window size, and allows the `--resolution` and `--position` CLI arguments to affect the project manager. Lastly, this increases the minimum width slightly to prevent the UI from being cut off with the default theme.
This commit is contained in:
parent
abf8e1e6f9
commit
cc86322d8d
@ -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());
|
||||
|
@ -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; }
|
||||
|
@ -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");
|
||||
|
Loading…
x
Reference in New Issue
Block a user