diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 6cff933de6718cdd0a4441879a27c25693b31075..e237cb7f9eaf316c0f3827b4192670e6b2e628b2 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -174,6 +174,7 @@ void on_new_message(const LLSD& msg) // determine state of conversations floater enum {CLOSED, NOT_ON_TOP, ON_TOP, ON_TOP_AND_ITEM_IS_SELECTED} conversations_floater_status; + LLFloaterIMContainer* im_box = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container"); LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::getConversation(session_id); @@ -186,13 +187,13 @@ void on_new_message(const LLSD& msg) { conversations_floater_status = NOT_ON_TOP; } - else if (session_floater->hasFocus()) + else if ((session_floater->hasFocus()) && (im_box->getSelectedSession() == session_id)) { - conversations_floater_status = ON_TOP; + conversations_floater_status = ON_TOP_AND_ITEM_IS_SELECTED; } - else if((session_floater->hasFocus()) && (im_box->getSelectedSession() == session_id)) + else { - conversations_floater_status = ON_TOP_AND_ITEM_IS_SELECTED; + conversations_floater_status = ON_TOP; } // determine user prefs for this session