From 9f0890fc3a6931562843e4597c009778424ee5bc Mon Sep 17 00:00:00 2001
From: leyla_linden <none@none>
Date: Tue, 11 Oct 2011 16:17:23 -0700
Subject: EXP-1293 Nearby chat toasts no longer appear. EXP-1316 Minimized
 Snapshot floater has a snapshot preview image attached below. EXP-1318
 Clicking on nearby chat toasts should bring up Nearby Chat history

---
 indra/newview/llchatitemscontainerctrl.cpp |  5 +++--
 indra/newview/llfloatersnapshot.cpp        |  2 +-
 indra/newview/llnearbychatbar.cpp          | 10 ++++++++++
 indra/newview/llnearbychatbar.h            |  2 ++
 indra/newview/llnearbychathandler.cpp      |  2 +-
 5 files changed, 17 insertions(+), 4 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp
index 8584885bc9..9a84280f25 100644
--- a/indra/newview/llchatitemscontainerctrl.cpp
+++ b/indra/newview/llchatitemscontainerctrl.cpp
@@ -35,6 +35,7 @@
 #include "llfloaterreg.h"
 #include "lllocalcliprect.h"
 #include "lltrans.h"
+#include "llnearbychatbar.h"
 
 #include "llviewercontrol.h"
 #include "llagentdata.h"
@@ -315,12 +316,12 @@ BOOL	LLNearbyChatToastPanel::handleMouseUp	(S32 x, S32 y, MASK mask)
 			return TRUE;
 		else
 		{
-			LLFloaterReg::showInstance("nearby_chat",LLSD());
+			LLNearbyChatBar::getInstance()->showHistory();
 			return FALSE;
 		}
 	}
 
-	LLFloaterReg::showInstance("nearby_chat",LLSD());
+	LLNearbyChatBar::getInstance()->showHistory();
 	return LLPanel::handleMouseUp(x,y,mask);
 }
 
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index 9d020517d8..8105844b0d 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -2217,7 +2217,7 @@ void LLFloaterSnapshot::draw()
 
 	LLFloater::draw();
 
-	if (previewp)
+	if (previewp && !isMinimized())
 	{		
 		if(previewp->getThumbnailImage())
 		{
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index 3073a19d83..cd84275ef0 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -135,6 +135,16 @@ LLNearbyChatBar* LLNearbyChatBar::getInstance()
 	return LLFloaterReg::getTypedInstance<LLNearbyChatBar>("chat_bar");
 }
 
+void LLNearbyChatBar::showHistory()
+{
+	if (!getChildView("nearby_chat")->getVisible())
+	{
+		onToggleNearbyChatPanel();
+	}
+	
+	openFloater();
+}
+
 void LLNearbyChatBar::draw()
 {
 	displaySpeakingIndicator();
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index a6fd6e5665..5a7edac1bb 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -59,6 +59,8 @@ public:
 	static void sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate);
 	static void sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate);
 
+	void showHistory();
+
 protected:
 	static BOOL matchChatTypeTrigger(const std::string& in_str, std::string* out_str);
 	static void onChatBoxKeystroke(LLLineEditor* caller, void* userdata);
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index dcf444b048..7503164fe6 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -581,7 +581,7 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg,		// WARNING - not
 	sChatWatcher->post(notification);
 
 
-	if( nearby_chat->getVisible()
+	if( chat_bar->getVisible() && nearby_chat->getVisible() 
 		|| ( chat_msg.mSourceType == CHAT_SOURCE_AGENT
 			&& gSavedSettings.getBOOL("UseChatBubbles") )
 		|| !mChannel->getShowToasts() ) // to prevent toasts in Busy mode
-- 
cgit v1.2.3