diff options
author | angela <angela@lindenlab.com> | 2010-03-04 10:35:51 +0800 |
---|---|---|
committer | angela <angela@lindenlab.com> | 2010-03-04 10:35:51 +0800 |
commit | f9815a6d13074cc3d1adda5aa41171f855097977 (patch) | |
tree | e960736102bb2a4f9cd46a6cbf7e04d4e0f0b187 /indra/newview/llimfloatercontainer.cpp | |
parent | 06b5cd096f9125c8c9b472487e841c19f5e62015 (diff) | |
parent | 2b5ea03a40c7bdd5962dc25c807b4ce5abb49bde (diff) |
merge
Diffstat (limited to 'indra/newview/llimfloatercontainer.cpp')
-rw-r--r-- | indra/newview/llimfloatercontainer.cpp | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp index d518318b0e..9eb11a6ac4 100644 --- a/indra/newview/llimfloatercontainer.cpp +++ b/indra/newview/llimfloatercontainer.cpp @@ -96,8 +96,29 @@ void LLIMFloaterContainer::addFloater(LLFloater* floaterp, LLUUID session_id = floaterp->getKey(); - floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id)); - mSessions[session_id] = floaterp; + LLIconCtrl* icon = 0; + + if(gAgent.isInGroup(session_id, TRUE)) + { + LLGroupIconCtrl::Params icon_params = LLUICtrlFactory::instance().getDefaultParams<LLGroupIconCtrl>(); + icon_params.group_id = session_id; + icon = LLUICtrlFactory::instance().createWidget<LLGroupIconCtrl>(icon_params); + + mSessions[session_id] = floaterp; + floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id)); + } + else + { + LLUUID avatar_id = LLIMModel::getInstance()->getOtherParticipantID(session_id); + + LLAvatarIconCtrl::Params icon_params = LLUICtrlFactory::instance().getDefaultParams<LLAvatarIconCtrl>(); + icon_params.avatar_id = avatar_id; + icon = LLUICtrlFactory::instance().createWidget<LLAvatarIconCtrl>(icon_params); + + mSessions[session_id] = floaterp; + floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id)); + } + mTabContainer->setTabImage(floaterp, icon); } void LLIMFloaterContainer::onCloseFloater(LLUUID& id) @@ -134,6 +155,8 @@ void LLIMFloaterContainer::setMinimized(BOOL b) if (isMinimized() == b) return; LLMultiFloater::setMinimized(b); + // Hide minimized floater (see EXT-5315) + setVisible(!b); if (isMinimized()) return; |