diff options
author | Loren Shih <seraph@lindenlab.com> | 2009-12-17 15:25:34 -0500 |
---|---|---|
committer | Loren Shih <seraph@lindenlab.com> | 2009-12-17 15:25:34 -0500 |
commit | 1f750b20665a5335d21c1989f875a4486af2964d (patch) | |
tree | 690baba3c55f6edb58ba1a00cba4f37585c21977 /indra/newview/llimfloater.cpp | |
parent | 967652a7059cd1434ec593d8d3022f8b8e6cf10c (diff) | |
parent | de3c63c339e135f51a6075b9bf9dbca1398b4ac4 (diff) |
pe -> viewer2.0 merge
Diffstat (limited to 'indra/newview/llimfloater.cpp')
-rw-r--r-- | indra/newview/llimfloater.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index 7dc21e6e23..ca43833530 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -49,6 +49,7 @@ #include "lllogchat.h" #include "llpanelimcontrolpanel.h" #include "llscreenchannel.h" +#include "llsyswellwindow.h" #include "lltrans.h" #include "llchathistory.h" #include "llviewerwindow.h" @@ -339,6 +340,29 @@ void LLIMFloater::onSlide() //static LLIMFloater* LLIMFloater::show(const LLUUID& session_id) { + if (!gIMMgr->hasSession(session_id)) return NULL; + + // we should make sure all related chiclets are in place when the session is a voice call + // chiclets come firts, then comes IM window + if (gIMMgr->isVoiceCall(session_id)) + { + LLIMModel* im_model = LLIMModel::getInstance(); + LLBottomTray* b_tray = LLBottomTray::getInstance(); + + //*TODO hide that into Bottom tray + if (!b_tray->getChicletPanel()->findChiclet<LLChiclet>(session_id)) + { + LLIMChiclet* chiclet = b_tray->createIMChiclet(session_id); + if(chiclet) + { + chiclet->setIMSessionName(im_model->getName(session_id)); + chiclet->setOtherParticipantId(im_model->getOtherParticipantID(session_id)); + } + } + + LLIMWellWindow::getInstance()->addIMRow(session_id); + } + bool not_existed = true; if(isChatMultiTab()) |