Commits

Tofu Linden  committed 0bd7b6c Merge

merge storm-192

  • Participants
  • Parent commits f695648, 60edd8d

Comments (0)

Files changed (2)

File indra/llui/llfloater.cpp

 
 		// Attempt to close floater.  This will cause the "do you want to save"
 		// dialogs to appear.
-		if (floaterp->canClose() && !floaterp->isDead())
+		// Skip invisible floaters if we're not quitting (STORM-192).
+		if (floaterp->canClose() && !floaterp->isDead() &&
+			(app_quitting || floaterp->getVisible()))
 		{
 			floaterp->closeFloater(app_quitting);
 		}

File indra/newview/llnearbychathandler.cpp

 
 class LLNearbyChatScreenChannel: public LLScreenChannelBase
 {
+	LOG_CLASS(LLNearbyChatScreenChannel);
 public:
 	LLNearbyChatScreenChannel(const LLUUID& id):LLScreenChannelBase(id) { mStopProcessing = false;};
 
 
 	virtual void deleteAllChildren()
 	{
+		LL_DEBUGS("NearbyChat") << "Clearing toast pool" << llendl;
 		m_toast_pool.clear();
 		m_active_toasts.clear();
 		LLScreenChannelBase::deleteAllChildren();
 	void	deactivateToast(LLToast* toast);
 	void	addToToastPool(LLToast* toast)
 	{
+		LL_DEBUGS("NearbyChat") << "Pooling toast" << llendl;
 		toast->setVisible(FALSE);
 		toast->stopTimer();
 		toast->setIsHidden(true);
 		return;
 	}
 
+	LL_DEBUGS("NearbyChat") << "Deactivating toast" << llendl;
 	m_active_toasts.erase(pos);
 }
 
 
 void LLNearbyChatScreenChannel::onToastDestroyed(LLToast* toast, bool app_quitting)
 {	
+	LL_DEBUGS("NearbyChat") << "Toast destroyed (app_quitting=" << app_quitting << ")" << llendl;
+
 	if (app_quitting)
 	{
 		// Viewer is quitting.
 }
 
 void LLNearbyChatScreenChannel::onToastFade(LLToast* toast)
-{	
+{
+	LL_DEBUGS("NearbyChat") << "Toast fading" << llendl;
+
 	//fade mean we put toast to toast pool
 	if(!toast)
 		return;
 	
 	toast->setOnFadeCallback(boost::bind(&LLNearbyChatScreenChannel::onToastFade, this, _1));
 	
+	LL_DEBUGS("NearbyChat") << "Creating and pooling toast" << llendl;
 	m_toast_pool.push_back(toast);
 	return true;
 }
 	if(m_toast_pool.empty())
 	{
 		//"pool" is empty - create one more panel
+		LL_DEBUGS("NearbyChat") << "Empty pool" << llendl;
 		if(!createPoolToast())//created toast will go to pool. so next call will find it
 			return;
 		addNotification(notification);
 
 	//take 1st element from pool, (re)initialize it, put it in active toasts
 
+	LL_DEBUGS("NearbyChat") << "Getting toast from pool" << llendl;
 	LLToast* toast = m_toast_pool.back();
 
 	m_toast_pool.pop_back();