summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterimcontainer.cpp
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2013-10-23 13:05:59 -0400
committerOz Linden <oz@lindenlab.com>2013-10-23 13:05:59 -0400
commitc9775dde6249582f0e8976be15e72bfebc4ac3fc (patch)
tree83407157dae234db649dfff763e68f6e3c843335 /indra/newview/llfloaterimcontainer.cpp
parent1a72325ef1e8c798066d8ef7f82acd08d60fb68c (diff)
parentea1e1b0925b386cf83178539b8eae9e25c573548 (diff)
merge up to 3.6.9-release
Diffstat (limited to 'indra/newview/llfloaterimcontainer.cpp')
-rwxr-xr-xindra/newview/llfloaterimcontainer.cpp31
1 files changed, 20 insertions, 11 deletions
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 4591b80ac4..90b4490e1d 100755
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -662,10 +662,10 @@ void LLFloaterIMContainer::setVisible(BOOL visible)
LLFloater* session_floater = widget->getSessionFloater();
if (session_floater != nearby_chat)
{
- widget->setVisibleIfDetached(visible);
- }
+ widget->setVisibleIfDetached(visible);
}
}
+ }
// Now, do the normal multifloater show/hide
LLMultiFloater::setVisible(visible);
@@ -674,13 +674,18 @@ void LLFloaterIMContainer::setVisible(BOOL visible)
void LLFloaterIMContainer::getDetachedConversationFloaters(floater_list_t& floaters)
{
typedef conversations_widgets_map::value_type conv_pair;
+ LLFloaterIMNearbyChat *nearby_chat = LLFloaterReg::findTypedInstance<LLFloaterIMNearbyChat>("nearby_chat");
+
BOOST_FOREACH(conv_pair item, mConversationsWidgets)
{
LLConversationViewSession* widget = dynamic_cast<LLConversationViewSession*>(item.second);
if (widget)
{
LLFloater* session_floater = widget->getSessionFloater();
- if (session_floater && session_floater->isDetachedAndNotMinimized())
+
+ // Exclude nearby chat from output, as it should be handled separately
+ if (session_floater && session_floater->isDetachedAndNotMinimized()
+ && session_floater != nearby_chat)
{
floaters.push_back(session_floater);
}
@@ -695,13 +700,13 @@ void LLFloaterIMContainer::setVisibleAndFrontmost(BOOL take_focus, const LLSD& k
// Only select other sessions
if (!getSelectedSession().isNull())
{
- selectConversationPair(getSelectedSession(), false, take_focus);
+ selectConversationPair(getSelectedSession(), false, take_focus);
}
if (mInitialized && mIsFirstLaunch)
{
collapseMessagesPane(gSavedPerAccountSettings.getBOOL("ConversationsMessagePaneCollapsed"));
mIsFirstLaunch = false;
- }
+}
}
void LLFloaterIMContainer::updateResizeLimits()
@@ -829,7 +834,7 @@ void LLFloaterIMContainer::assignResizeLimits()
S32 conv_pane_target_width = is_conv_pane_expanded
? ( is_msg_pane_expanded?mConversationsPane->getRect().getWidth():mConversationsPane->getExpandedMinDim() )
- : mConversationsPane->getMinDim();
+ : mConversationsPane->getMinDim();
S32 msg_pane_min_width = is_msg_pane_expanded ? mMessagesPane->getExpandedMinDim() : 0;
S32 new_min_width = conv_pane_target_width + msg_pane_min_width + summary_width_of_visible_borders;
@@ -990,7 +995,7 @@ void LLFloaterIMContainer::setSortOrder(const LLConversationSort& order)
conversation_floater->setSortOrder(order);
}
}
-
+
gSavedSettings.setU32("ConversationSortOrder", (U32)order);
}
@@ -1075,6 +1080,10 @@ void LLFloaterIMContainer::doToParticipants(const std::string& command, uuid_vec
{
LLAvatarActions::offerTeleport(selectedIDS);
}
+ else if ("request_teleport" == command)
+ {
+ LLAvatarActions::teleportRequest(selectedIDS.front());
+ }
else if ("voice_call" == command)
{
LLAvatarActions::startCall(userID);
@@ -1177,7 +1186,7 @@ void LLFloaterIMContainer::doToSelectedConversation(const std::string& command,
}
else if("chat_history" == command)
{
- if (selectedIDS.size() > 0)
+ if (selectedIDS.size() > 0)
{
LLAvatarActions::viewChatHistory(selectedIDS.front());
}
@@ -1199,7 +1208,7 @@ void LLFloaterIMContainer::doToSelectedConversation(const std::string& command,
{
LLFloaterReg::showInstance("preview_conversation", LLSD(LLUUID::null), true);
}
- }
+}
}
}
@@ -1230,7 +1239,7 @@ void LLFloaterIMContainer::doToSelectedGroup(const LLSD& userdata)
if (action == "group_profile")
{
- LLGroupActions::show(mSelectedSession);
+ LLGroupActions::show(mSelectedSession);
}
else if (action == "activate_group")
{
@@ -1604,7 +1613,7 @@ LLConversationItem* LLFloaterIMContainer::addConversationListItem(const LLUUID&
// Create the participants widgets now
// Note: usually, we do not get an updated avatar list at that point
- if (uuid.isNull() || im_sessionp && !im_sessionp->isP2PSessionType())
+ if (uuid.isNull() || (im_sessionp && !im_sessionp->isP2PSessionType()))
{
LLFolderViewModelItemCommon::child_list_t::const_iterator current_participant_model = item->getChildrenBegin();
LLFolderViewModelItemCommon::child_list_t::const_iterator end_participant_model = item->getChildrenEnd();