summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2012-10-19 17:42:22 -0700
committerMerov Linden <merov@lindenlab.com>2012-10-19 17:42:22 -0700
commit730ba97759deabd7fb45e63eae650f83c1d9ba99 (patch)
tree2d484050ef7942ffdad6ec4636a0d35e43158917 /indra
parente6a7133ef1fa1760e0bfb53f5b14e7b6e76da0f5 (diff)
parent0356ef61cf9f70b97dc78a59fba58465d99f5fc0 (diff)
Pull merge from richard/viewer-chui
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/llmemory.h6
-rw-r--r--indra/llui/llfolderview.cpp6
-rw-r--r--indra/llui/lltextbase.cpp2
-rw-r--r--indra/newview/llimfloatercontainer.cpp57
-rw-r--r--indra/newview/pipeline.cpp2
-rw-r--r--indra/newview/skins/default/textures/icons/nearby_chat_icon.pngbin793 -> 553 bytes
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml1
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.png
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
Binary files differ
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>