From 0ad34bfb26aa1c14ab854dc6a86f8c0ea5f8ae51 Mon Sep 17 00:00:00 2001
From: Mnikolenko Productengine <mnikolenko@productengine.com>
Date: Fri, 9 Apr 2021 19:23:34 +0300
Subject: [PATCH] =?UTF-8?q?SL-15094=20FIXED=20=E2=80=98My=20last=20locatio?=
 =?UTF-8?q?n=E2=80=99=20is=20used=20instead=20of=20entered=20location?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 indra/newview/llpanellogin.cpp | 15 +++++++++------
 indra/newview/llpanellogin.h   |  2 +-
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index 0e7634f1d22..d7462f50e23 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -254,7 +254,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
 	LLLineEditor* password_edit(getChild<LLLineEditor>("password_edit"));
 	password_edit->setKeystrokeCallback(onPassKey, this);
 	// STEAM-14: When user presses Enter with this field in focus, initiate login
-	password_edit->setCommitCallback(boost::bind(&LLPanelLogin::onClickConnect, this));
+	password_edit->setCommitCallback(boost::bind(&LLPanelLogin::onClickConnect, false));
 
 	// change z sort of clickable text to be behind buttons
 	sendChildToBack(getChildView("forgot_password_text"));
@@ -265,7 +265,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
     {
         LLComboBox* favorites_combo = getChild<LLComboBox>("start_location_combo");
         updateLocationSelectorsVisibility(); // separate so that it can be called from preferences
-        favorites_combo->setReturnCallback(boost::bind(&LLPanelLogin::onClickConnect, this));
+        favorites_combo->setReturnCallback(boost::bind(&LLPanelLogin::onClickConnect, false));
         favorites_combo->setFocusLostCallback(boost::bind(&LLPanelLogin::onLocationSLURL, this));
 
         LLComboBox* server_choice_combo = getChild<LLComboBox>("server_combo");
@@ -997,12 +997,15 @@ void LLPanelLogin::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent ev
 // Protected methods
 //---------------------------------------------------------------------------
 // static
-void LLPanelLogin::onClickConnect(void *)
+void LLPanelLogin::onClickConnect(bool commit_fields)
 {
 	if (sInstance && sInstance->mCallback)
 	{
-		// JC - Make sure the fields all get committed.
-		sInstance->setFocus(FALSE);
+		if (commit_fields)
+		{
+			// JC - Make sure the fields all get committed.
+			sInstance->setFocus(FALSE);
+		}
 
 		LLComboBox* combo = sInstance->getChild<LLComboBox>("server_combo");
 		LLSD combo_val = combo->getSelectedValue();
@@ -1125,7 +1128,7 @@ void LLPanelLogin::onUserListCommit(void*)
            }
            else
            {
-               onClickConnect(NULL);
+               onClickConnect();
            }
         }
     }
diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h
index c9b8e1b6fcf..5871cae0593 100644
--- a/indra/newview/llpanellogin.h
+++ b/indra/newview/llpanellogin.h
@@ -98,7 +98,7 @@ class LLPanelLogin:
 
 	static void setFields(LLPointer<LLCredential> credential);
 
-	static void onClickConnect(void*);
+	static void onClickConnect(bool commit_fields = true);
 	static void onClickNewAccount(void*);
 	static void onClickVersion(void*);
 	static void onClickForgotPassword(void*);
-- 
GitLab