diff options
author | Merov Linden <merov@lindenlab.com> | 2012-12-05 20:26:26 -0800 |
---|---|---|
committer | Merov Linden <merov@lindenlab.com> | 2012-12-05 20:26:26 -0800 |
commit | 42a60e6ca5f4179738fa9a7376d1e842bc058ac4 (patch) | |
tree | 8e1f74ebf472a2ea9ae74f4ea65409c418555218 /indra/newview/llimview.cpp | |
parent | 3a49beed0e96a797a6d663bcae5e932437ca3661 (diff) | |
parent | 32d7131b1034d03fa9d3fdde8b86ee9880bb4f67 (diff) |
Pull merge from dev repo
Diffstat (limited to 'indra/newview/llimview.cpp')
-rw-r--r-- | indra/newview/llimview.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 0de8f124ee..0b18a503ab 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -191,7 +191,25 @@ void on_new_message(const LLSD& msg) } else if("openconversations" == action) { - LLFloaterReg::showInstance("im_container"); + LLFloaterIMContainer* im_box = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container"); + LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::getConversation(session_id); + + //Don't flash and show conversation floater when conversation already active (has focus) + if(session_floater + && (!session_floater->isInVisibleChain()) //conversation floater not displayed + || + (session_floater->isInVisibleChain() && session_floater->hasFocus() == false)) //conversation floater is displayed but doesn't have focus + + { + //Flash line item + if (im_box) + { + im_box->flashConversationItemWidget(session_id, true); // flashing of the conversation's item + } + + //Surface conversations floater + LLFloaterReg::showInstance("im_container"); + } } } |