From ef0742827e24ca06e2e4782adb5e65fc84edc0a7 Mon Sep 17 00:00:00 2001 From: arkology <43543909+arkology@users.noreply.github.com> Date: Thu, 13 Nov 2025 07:00:53 +0000 Subject: [PATCH] Fix `ProjectManager` UI going below window --- editor/project_manager/project_manager.cpp | 25 ++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/editor/project_manager/project_manager.cpp b/editor/project_manager/project_manager.cpp index 77fa95052c5..c516ff15269 100644 --- a/editor/project_manager/project_manager.cpp +++ b/editor/project_manager/project_manager.cpp @@ -1623,9 +1623,16 @@ ProjectManager::ProjectManager() { project_list_sidebar->add_child(memnew(HSeparator)); + ScrollContainer *sidebar_scroll_containter = memnew(ScrollContainer); + sidebar_scroll_containter->set_horizontal_scroll_mode(ScrollContainer::SCROLL_MODE_DISABLED); + sidebar_scroll_containter->set_v_size_flags(Control::SIZE_EXPAND_FILL); + project_list_sidebar->add_child(sidebar_scroll_containter); + VBoxContainer *sidebar_buttons_containter = memnew(VBoxContainer); + sidebar_scroll_containter->add_child(sidebar_buttons_containter); + open_btn_container = memnew(HBoxContainer); open_btn_container->set_anchors_preset(Control::PRESET_FULL_RECT); - project_list_sidebar->add_child(open_btn_container); + sidebar_buttons_containter->add_child(open_btn_container); open_btn = memnew(Button); open_btn->set_text(TTRC("Edit")); @@ -1654,39 +1661,35 @@ ProjectManager::ProjectManager() { run_btn->set_text(TTRC("Run")); run_btn->set_shortcut(ED_SHORTCUT("project_manager/run_project", TTRC("Run Project"), KeyModifierMask::CMD_OR_CTRL | Key::R)); run_btn->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_run_project)); - project_list_sidebar->add_child(run_btn); + sidebar_buttons_containter->add_child(run_btn); rename_btn = memnew(Button); rename_btn->set_text(TTRC("Rename")); // The F2 shortcut isn't overridden with Enter on macOS as Enter is already used to edit a project. rename_btn->set_shortcut(ED_SHORTCUT("project_manager/rename_project", TTRC("Rename Project"), Key::F2)); rename_btn->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_rename_project)); - project_list_sidebar->add_child(rename_btn); + sidebar_buttons_containter->add_child(rename_btn); duplicate_btn = memnew(Button); duplicate_btn->set_text(TTRC("Duplicate")); duplicate_btn->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_duplicate_project)); - project_list_sidebar->add_child(duplicate_btn); + sidebar_buttons_containter->add_child(duplicate_btn); manage_tags_btn = memnew(Button); manage_tags_btn->set_text(TTRC("Manage Tags")); manage_tags_btn->set_shortcut(ED_SHORTCUT("project_manager/project_tags", TTRC("Manage Tags"), KeyModifierMask::CMD_OR_CTRL | Key::T)); - project_list_sidebar->add_child(manage_tags_btn); + sidebar_buttons_containter->add_child(manage_tags_btn); erase_btn = memnew(Button); erase_btn->set_text(TTRC("Remove")); erase_btn->set_shortcut(ED_SHORTCUT("project_manager/remove_project", TTRC("Remove Project"), Key::KEY_DELETE)); erase_btn->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_erase_project)); - project_list_sidebar->add_child(erase_btn); + sidebar_buttons_containter->add_child(erase_btn); erase_missing_btn = memnew(Button); erase_missing_btn->set_text(TTRC("Remove Missing")); erase_missing_btn->connect(SceneStringName(pressed), callable_mp(this, &ProjectManager::_erase_missing_projects)); - project_list_sidebar->add_child(erase_missing_btn); - - Control *filler = memnew(Control); - filler->set_v_size_flags(Control::SIZE_EXPAND_FILL); - project_list_sidebar->add_child(filler); + sidebar_buttons_containter->add_child(erase_missing_btn); donate_btn = memnew(Button); donate_btn->set_text(TTRC("Donate"));