fix(ui): preserve auto-connect state when navigating back from character screen

Add resetForBack() to RealmScreen that clears selection state without
resetting autoSelectAttempted, preventing single-realm auto-connect from
re-firing when the user navigates back from the character screen.

Signed-off-by: Pavel Okhlopkov <pavel.okhlopkov@flant.com>
This commit is contained in:
Pavel Okhlopkov 2026-04-10 19:50:06 +03:00
parent fce8ccdc45
commit 4ba19d53d7
2 changed files with 13 additions and 1 deletions

View file

@ -44,6 +44,18 @@ public:
statusMessage.clear();
}
/**
* Reset for back-navigation from character screen.
* Preserves autoSelectAttempted so single-realm auto-connect doesn't re-fire.
*/
void resetForBack() {
selectedRealmIndex = -1;
realmSelected = false;
selectedRealmName.clear();
selectedRealmAddress.clear();
statusMessage.clear();
}
/**
* Check if a realm has been selected
*/

View file

@ -155,7 +155,7 @@ void UIScreenCallbackHandler::setupCallbacks() {
uiManager_.getCharacterScreen().setOnBack([this]() {
// Disconnect from world server and reset UI state for fresh realm selection
gameHandler_.disconnect();
uiManager_.getRealmScreen().reset();
uiManager_.getRealmScreen().resetForBack();
uiManager_.getCharacterScreen().reset();
setState_(AppState::REALM_SELECTION);
});