[UI] Eliminate mouse requirement for initial profile create dialogs

Enable keyboard navigation and accept Enter to complete profile creation
This commit is contained in:
Herman S.
2026-04-13 08:10:50 +09:00
parent a292248bee
commit 80c6751b82
3 changed files with 9 additions and 4 deletions

View File

@@ -61,6 +61,9 @@ void NoProfileDialog::OnDraw(ImGuiIO& io) {
const auto content_files = xe::filesystem::ListDirectories(
emulator_window_->emulator()->content_root());
if (ImGui::IsWindowAppearing()) {
ImGui::SetKeyboardFocusHere();
}
if (content_files.empty()) {
if (ImGui::Button("Create Profile")) {
new kernel::xam::ui::CreateProfileUI(emulator_window_->imgui_drawer(),

View File

@@ -38,12 +38,13 @@ void CreateProfileUI::OnDraw(ImGuiIO& io) {
}
ImGui::TextUnformatted("Gamertag:");
if (ImGui::InputText("##Gamertag", gamertag_, sizeof(gamertag_))) {
valid_gamertag_ = profile_manager->IsGamertagValid(std::string(gamertag_));
}
const bool enter_pressed =
ImGui::InputText("##Gamertag", gamertag_, sizeof(gamertag_),
ImGuiInputTextFlags_EnterReturnsTrue);
valid_gamertag_ = profile_manager->IsGamertagValid(std::string(gamertag_));
ImGui::BeginDisabled(!valid_gamertag_);
if (ImGui::Button("Create")) {
if (ImGui::Button("Create") || (enter_pressed && valid_gamertag_)) {
bool autologin = (profile_manager->GetAccountCount() == 0);
if (profile_manager->CreateProfile(std::string(gamertag_), autologin,
migration_) &&

View File

@@ -162,6 +162,7 @@ void ImGuiDrawer::Initialize() {
auto& io = ImGui::GetIO();
io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad;
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
const float font_size = std::max((float)cvars::font_size, 8.f);
const float title_font_size = font_size + 6.f;