summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llpanellogin.cpp9
-rw-r--r--indra/newview/llpanellogin.h6
-rw-r--r--indra/newview/llstartup.cpp2
3 files changed, 11 insertions, 6 deletions
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index a88c10521c..8881222f2c 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -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();
}
diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h
index 869f2f8d39..82ef048493 100644
--- a/indra/newview/llpanellogin.h
+++ b/indra/newview/llpanellogin.h
@@ -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;
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 8295ce029b..df1d2a3946 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -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);
}