From f3743b8e3092daabf5c5324626c4f04f36ff5bd7 Mon Sep 17 00:00:00 2001
From: Mnikolenko Productengine <mnikolenko@productengine.com>
Date: Fri, 1 Oct 2021 16:39:56 +0300
Subject: [PATCH] SL-15999 use callback for updating window title

---
 indra/newview/llteleporthistory.cpp | 30 ++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/indra/newview/llteleporthistory.cpp b/indra/newview/llteleporthistory.cpp
index b872053d3f0..3ece12931c6 100644
--- a/indra/newview/llteleporthistory.cpp
+++ b/indra/newview/llteleporthistory.cpp
@@ -118,6 +118,20 @@ void LLTeleportHistory::handleLoginComplete()
 	updateCurrentLocation(gAgent.getPositionGlobal());
 }
 
+static void on_avatar_name_update_title(const LLAvatarName& av_name)
+{
+	if (gAgent.getRegion() && gViewerWindow && gViewerWindow->getWindow())
+	{
+		std::string region = gAgent.getRegion()->getName();
+		std::string username = av_name.getUserName();
+
+		// this first pass simply displays username and region name
+		// but could easily be extended to include other details like
+		// X/Y/Z location within a region etc.
+		std::string new_title = STRINGIZE(username << " @ " << region);
+		gViewerWindow->getWindow()->setTitle(new_title);
+	}	
+}
 
 void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)
 {
@@ -184,21 +198,7 @@ void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)
     // setting to allow it is enabled (may be useful in other situations)
     if (gNonInteractive || gSavedSettings.getBOOL("UpdateAppWindowTitleBar"))
     {
-        LLAvatarName av_name;
-        if (LLAvatarNameCache::get(gAgent.getID(), &av_name))
-        {
-            if (gAgent.getRegion() && gViewerWindow && gViewerWindow->getWindow())
-            {
-                std::string region = gAgent.getRegion()->getName();
-                std::string username = av_name.getUserName();
-
-                // this first pass simply displays username and region name
-                // but could easily be extended to include other details like
-                // X/Y/Z location within a region etc.
-                std::string new_title = STRINGIZE(username << " @ " << region);
-                gViewerWindow->getWindow()->setTitle(new_title);
-            }
-        }
+		LLAvatarNameCache::get(gAgent.getID(), boost::bind(&on_avatar_name_update_title, _2));
     }
 
 	// Signal the interesting party that we've changed. 
-- 
GitLab