diff options
| author | Merov Linden <merov@lindenlab.com> | 2012-10-19 17:42:22 -0700 | 
|---|---|---|
| committer | Merov Linden <merov@lindenlab.com> | 2012-10-19 17:42:22 -0700 | 
| commit | 730ba97759deabd7fb45e63eae650f83c1d9ba99 (patch) | |
| tree | 2d484050ef7942ffdad6ec4636a0d35e43158917 /indra | |
| parent | e6a7133ef1fa1760e0bfb53f5b14e7b6e76da0f5 (diff) | |
| parent | 0356ef61cf9f70b97dc78a59fba58465d99f5fc0 (diff) | |
Pull merge from richard/viewer-chui
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llcommon/llmemory.h | 6 | ||||
| -rw-r--r-- | indra/llui/llfolderview.cpp | 6 | ||||
| -rw-r--r-- | indra/llui/lltextbase.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llimfloatercontainer.cpp | 57 | ||||
| -rw-r--r-- | indra/newview/pipeline.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/textures/icons/nearby_chat_icon.png | bin | 793 -> 553 bytes | |||
| -rw-r--r-- | indra/newview/skins/default/xui/en/strings.xml | 1 | 
7 files changed, 40 insertions, 34 deletions
| diff --git a/indra/llcommon/llmemory.h b/indra/llcommon/llmemory.h index 40cde485cf..10013e0f92 100644 --- a/indra/llcommon/llmemory.h +++ b/indra/llcommon/llmemory.h @@ -87,7 +87,11 @@ inline void* ll_aligned_realloc_16(void* ptr, size_t size, size_t old_size) // r  	void* ret = ll_aligned_malloc_16(size);  	if (ptr)  	{ -		memcpy(ret, ptr, old_size); +		if (ret) +		{ +			// Only copy the size of the smallest memory block to avoid memory corruption. +			memcpy(ret, ptr, llmin(old_size, size)); +		}  		ll_aligned_free_16(ptr);  	}  	return ret; diff --git a/indra/llui/llfolderview.cpp b/indra/llui/llfolderview.cpp index c1a11851e2..c8b8bcae48 100644 --- a/indra/llui/llfolderview.cpp +++ b/indra/llui/llfolderview.cpp @@ -504,7 +504,11 @@ void LLFolderView::sanitizeSelection()  		LLFolderViewItem* item = *item_iter;  		// ensure that each ancestor is open and potentially passes filtering -		BOOL visible = item->getViewModelItem()->potentiallyVisible(); // initialize from filter state for this item +		BOOL visible = false; +		if(item->getViewModelItem()) +		{ +			visible = item->getViewModelItem()->potentiallyVisible(); // initialize from filter state for this item +		}  		// modify with parent open and filters states  		LLFolderViewFolder* parent_folder = item->getParentFolder();  		// Move up through parent folders and see what's visible diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index b827acb185..8839afb60d 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -1359,6 +1359,7 @@ void LLTextBase::onSpellCheckSettingsChange()  void LLTextBase::onFocusReceived()  { +	LLUICtrl::onFocusReceived();  	if (!getLength() && !mLabel.empty())  	{  		// delete label which is LLLabelTextSegment @@ -1368,6 +1369,7 @@ void LLTextBase::onFocusReceived()  void LLTextBase::onFocusLost()  { +	LLUICtrl::onFocusLost();  	if (!getLength() && !mLabel.empty())  	{  		resetLabel(); diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp index c9c7e94af9..14ed0b3c3e 100644 --- a/indra/newview/llimfloatercontainer.cpp +++ b/indra/newview/llimfloatercontainer.cpp @@ -286,32 +286,21 @@ void LLIMFloaterContainer::onCloseFloater(LLUUID& id)  // virtual  void LLIMFloaterContainer::computeResizeLimits(S32& new_min_width, S32& new_min_height)  { -	bool is_left_pane_expanded = !mConversationsPane->isCollapsed(); -	bool is_right_pane_expanded = !mMessagesPane->isCollapsed(); - -	S32 conversations_pane_min_dim = mConversationsPane->getMinDim(); - -	if (is_right_pane_expanded) +	// possibly increase floater's minimum height according to children's minimums +	for (S32 tab_idx = 0; tab_idx < mTabContainer->getTabCount(); ++tab_idx)  	{ -		S32 conversations_pane_width = -				(is_left_pane_expanded ? gSavedPerAccountSettings.getS32("ConversationsListPaneWidth") : conversations_pane_min_dim); - -		// possibly increase minimum size constraint due to children's minimums. -		for (S32 tab_idx = 0; tab_idx < mTabContainer->getTabCount(); ++tab_idx) +		LLFloater* floaterp = dynamic_cast<LLFloater*>(mTabContainer->getPanelByIndex(tab_idx)); +		if (floaterp)  		{ -			LLFloater* floaterp = dynamic_cast<LLFloater*>(mTabContainer->getPanelByIndex(tab_idx)); -			if (floaterp) -			{ -				new_min_width = llmax(new_min_width, -						floaterp->getMinWidth() + conversations_pane_width + LLPANEL_BORDER_WIDTH * 2); -				new_min_height = llmax(new_min_height, floaterp->getMinHeight()); -			} +			new_min_height = llmax(new_min_height, floaterp->getMinHeight());  		}  	} -	else -	{ -		new_min_width = conversations_pane_min_dim; -	} + +	S32 conversations_pane_min_dim = mConversationsPane->getRelevantMinDim(); +	S32 messages_pane_min_dim = mMessagesPane->getRelevantMinDim(); + +	// set floater's minimum width according to relevant minimal children's dimensionals +	new_min_width = conversations_pane_min_dim + messages_pane_min_dim + LLPANEL_BORDER_WIDTH*2;  }  void LLIMFloaterContainer::onNewMessageReceived(const LLSD& data) @@ -938,15 +927,18 @@ void LLIMFloaterContainer::doToSelected(const LLSD& userdata)      const LLConversationItem * conversationItem = getCurSelectedViewModelItem();      uuid_vec_t selected_uuids; -    getParticipantUUIDs(selected_uuids); - -    if(conversationItem->getType() == LLConversationItem::CONV_PARTICIPANT) +    if(conversationItem != NULL)      { -        doToParticipants(command, selected_uuids); -    } -    else -    { -        doToSelectedConversation(command, selected_uuids); +    	getParticipantUUIDs(selected_uuids); + +    	if(conversationItem->getType() == LLConversationItem::CONV_PARTICIPANT) +    	{ +    		doToParticipants(command, selected_uuids); +    	} +    	else +    	{ +    		doToSelectedConversation(command, selected_uuids); +    	}      }  } @@ -1175,8 +1167,9 @@ void LLIMFloaterContainer::setNearbyDistances()  void LLIMFloaterContainer::addConversationListItem(const LLUUID& uuid, bool isWidgetSelected /*= false*/)  {  	bool is_nearby_chat = uuid.isNull(); -	 -	std::string display_name = is_nearby_chat ? LLTrans::getString("NearbyChatTitle") : LLIMModel::instance().getName(uuid); + +    //Stores the display name for the conversation line item +	std::string display_name = is_nearby_chat ? LLTrans::getString("NearbyChatLabel") : LLIMModel::instance().getName(uuid);  	// Check if the item is not already in the list, exit if it is and has the same name and uuid (nothing to do)  	// Note: this happens often, when reattaching a torn off conversation for instance diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index ba047487f5..b6f3301c6c 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -706,6 +706,8 @@ void LLPipeline::cleanup()  	mInitialized = FALSE;  	mDeferredVB = NULL; + +	mCubeVB = NULL;  }  //============================================================================ diff --git a/indra/newview/skins/default/textures/icons/nearby_chat_icon.png b/indra/newview/skins/default/textures/icons/nearby_chat_icon.pngBinary files differ index 7c3ad40381..48c2379133 100644 --- a/indra/newview/skins/default/textures/icons/nearby_chat_icon.png +++ b/indra/newview/skins/default/textures/icons/nearby_chat_icon.png diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 696c282887..01da0a3686 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -385,6 +385,7 @@ Please try logging in again in a minute.</string>  	<!-- Chat -->  	<string name="NearbyChatTitle">Nearby chat</string> +  <string name="NearbyChatLabel">(Nearby chat)</string>  	<string name="whisper">whispers:</string>  	<string name="shout">shouts:</string>  	<string name="ringing">Connecting to in-world Voice Chat...</string> | 
