diff --git a/src/interactive/interactive.cpp b/src/interactive/interactive.cpp index 7332443..ac7c04c 100644 --- a/src/interactive/interactive.cpp +++ b/src/interactive/interactive.cpp @@ -268,8 +268,6 @@ std::string fullscreen_window::set_input_multiple_choice(std::string prompt, std case KEY_UP: if (selected > 0) { selected--; - } else { - selected = filtered_choices.size() - 1; // Wrap to end } break; @@ -277,8 +275,6 @@ std::string fullscreen_window::set_input_multiple_choice(std::string prompt, std case KEY_DOWN: if (selected < filtered_choices.size() - 1) { selected++; - } else { - selected = 0; // Wrap to beginning } break; @@ -333,9 +329,13 @@ bool fullscreen_window::set_input_yes_no(std::string prompt) { } else if (ch == 'n' || ch == 'N') { return false; } else if (ch == KEY_LEFT) { - selected = 0; + if (selected > 0) { + selected = 0; + } } else if (ch == KEY_RIGHT) { - selected = 1; + if (selected < 1) { + selected = 1; + } } } } @@ -375,9 +375,13 @@ char fullscreen_window::set_input_yes_no_cancel(std::string prompt) { } else if (ch == 'c' || ch == 'C') { return 'c'; } else if (ch == KEY_LEFT) { - selected = (selected - 1 + 3) % 3; + if (selected > 0) { + selected--; + } } else if (ch == KEY_RIGHT) { - selected = (selected + 1) % 3; + if (selected < 2) { + selected++; + } } } } diff --git a/src/servers.cpp b/src/servers.cpp index 9435d4c..29d709e 100644 --- a/src/servers.cpp +++ b/src/servers.cpp @@ -54,6 +54,9 @@ std::vector get_configured_servers() { void interactive_mode() { interactive::fullscreen_window iw("DropShell Servers"); + + iw.set_input_text_display("Loading all servers' status..."); + auto servers = get_configured_servers(); std::vector server_names; for (const auto& server : servers) {