MAINT-7835 Start location is not changed correctly via 'maps.secondlife.com' link in some cases

meow-7.2.2
Mnikolenko Productengine 2017-09-28 16:13:44 +03:00
parent 36c991877f
commit d8dd2e7899
3 changed files with 11 additions and 6 deletions

View File

@ -75,6 +75,7 @@
LLPanelLogin *LLPanelLogin::sInstance = NULL;
BOOL LLPanelLogin::sCapslockDidNotification = FALSE;
BOOL LLPanelLogin::sCredentialSet = FALSE;
class LLLoginLocationAutoHandler : public LLCommandHandler
{
@ -176,6 +177,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
setBackgroundOpaque(TRUE);
mPasswordModified = FALSE;
LLPanelLogin::sInstance = this;
LLView* login_holder = gViewerWindow->getLoginPanelHolder();
@ -458,6 +460,7 @@ void LLPanelLogin::setFields(LLPointer<LLCredential> credential,
LL_WARNS() << "Attempted fillFields with no login view shown" << LL_ENDL;
return;
}
sCredentialSet = TRUE;
LL_INFOS("Credentials") << "Setting login fields to " << *credential << LL_ENDL;
LLSD identifier = credential->getIdentifier();
@ -680,10 +683,8 @@ void LLPanelLogin::onUpdateStartSLURL(const LLSLURL& new_start_slurl)
}
if ( new_start_slurl.getLocationString().length() )
{
if (location_combo->getCurrentIndex() == -1)
{
location_combo->setLabel(new_start_slurl.getLocationString());
}
location_combo->setLabel(new_start_slurl.getLocationString());
sInstance->mLocationLength = new_start_slurl.getLocationString().length();
sInstance->updateLoginButtons();
}

View File

@ -56,9 +56,11 @@ public:
void* callback_data);
static void setFields(LLPointer<LLCredential> credential, BOOL remember);
static void getFields(LLPointer<LLCredential>& credential, BOOL& remember);
static BOOL isCredentialSet() { return sCredentialSet; }
static BOOL areCredentialFieldsDirty();
static void setLocation(const LLSLURL& slurl);
static void autologinToLocation(const LLSLURL& slurl);
@ -115,6 +117,8 @@ private:
static LLPanelLogin* sInstance;
static BOOL sCapslockDidNotification;
bool mFirstLoginThisInstall;
static BOOL sCredentialSet;
unsigned int mUsernameLength;
unsigned int mPasswordLength;

View File

@ -766,7 +766,7 @@ bool idle_startup()
// Show the login dialog
login_show();
// connect dialog is already shown, so fill in the names
if (gUserCredential.notNull())
if (gUserCredential.notNull() && !LLPanelLogin::isCredentialSet())
{
LLPanelLogin::setFields( gUserCredential, gRememberPassword);
}