From 575a04b4b45a6366ae97942ffe2589897e57be4c Mon Sep 17 00:00:00 2001
From: "prep@lindenlab.com" <prep@lindenlab.com>
Date: Tue, 31 Jul 2012 16:43:11 -0500
Subject: [PATCH] Path-643. Once the preferences panel is closed (either
 through ok or cancel), the pathing console rebuilds the gfx data.

---
 indra/newview/llfloaterpathfindingconsole.h |  4 ++--
 indra/newview/llfloaterpreference.cpp       | 19 +++++++++++++++++--
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/indra/newview/llfloaterpathfindingconsole.h b/indra/newview/llfloaterpathfindingconsole.h
index 4b2f7672e41..e999e57741f 100644
--- a/indra/newview/llfloaterpathfindingconsole.h
+++ b/indra/newview/llfloaterpathfindingconsole.h
@@ -93,7 +93,7 @@ class LLFloaterPathfindingConsole
 
 	LLPathingLib::LLPLCharacterType getRenderHeatmapType() const;
 	void                            setRenderHeatmapType(LLPathingLib::LLPLCharacterType pRenderHeatmapType);
-
+	void onRegionBoundaryCross();
 protected:
 
 private:
@@ -124,7 +124,7 @@ class LLFloaterPathfindingConsole
 	void onClearPathClicked();
 
 	void handleNavMeshZoneStatus(LLPathfindingNavMeshZone::ENavMeshZoneRequestStatus pNavMeshZoneRequestStatus);
-	void onRegionBoundaryCross();
+	
 	void onPathEvent();
 
 	void setDefaultInputs();
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 60556147a91..5752f839cef 100755
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -77,7 +77,7 @@
 #include "llviewerthrottle.h"
 #include "llvotree.h"
 #include "llvosky.h"
-
+#include "llfloaterpathfindingconsole.h"
 // linden library includes
 #include "llavatarnamecache.h"
 #include "llerror.h"
@@ -632,6 +632,13 @@ void LLFloaterPreference::cancel()
 	{
 		advanced_proxy_settings->cancel();
 	}
+	//Need to reload the navmesh if the pathing console is up
+	LLHandle<LLFloaterPathfindingConsole> pathfindingConsoleHandle = LLFloaterPathfindingConsole::getInstanceHandle();
+	if ( !pathfindingConsoleHandle.isDead() )
+	{
+		LLFloaterPathfindingConsole* pPathfindingConsole = pathfindingConsoleHandle.get();
+		pPathfindingConsole->onRegionBoundaryCross();
+	}
 }
 
 void LLFloaterPreference::onOpen(const LLSD& key)
@@ -779,7 +786,15 @@ void LLFloaterPreference::onBtnOK()
 		llinfos << "Can't close preferences!" << llendl;
 	}
 
-	LLPanelLogin::updateLocationSelectorsVisibility();
+	LLPanelLogin::updateLocationSelectorsVisibility();	
+	//Need to reload the navmesh if the pathing console is up
+	LLHandle<LLFloaterPathfindingConsole> pathfindingConsoleHandle = LLFloaterPathfindingConsole::getInstanceHandle();
+	if ( !pathfindingConsoleHandle.isDead() )
+	{
+		LLFloaterPathfindingConsole* pPathfindingConsole = pathfindingConsoleHandle.get();
+		pPathfindingConsole->onRegionBoundaryCross();
+	}
+	
 }
 
 // static 
-- 
GitLab