summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llfloaterimnearbychathandler.cpp10
-rw-r--r--indra/newview/llimview.cpp14
2 files changed, 15 insertions, 9 deletions
diff --git a/indra/newview/llfloaterimnearbychathandler.cpp b/indra/newview/llfloaterimnearbychathandler.cpp
index 0824b26406..9ce5e12897 100644
--- a/indra/newview/llfloaterimnearbychathandler.cpp
+++ b/indra/newview/llfloaterimnearbychathandler.cpp
@@ -605,11 +605,15 @@ void LLFloaterIMNearbyChatHandler::processChat(const LLChat& chat_msg,
}
//Don't show nearby toast, if conversation is visible and selected
- if (im_box->getSelectedSession().isNull() &&
+ if ((nearby_chat->hasFocus()) ||
+ ((im_box->getSelectedSession().isNull() &&
((LLFloater::isVisible(im_box) && !im_box->isMinimized() && im_box->isFrontmost())
- || (LLFloater::isVisible(nearby_chat) && !nearby_chat->isMinimized() && nearby_chat->isFrontmost())))
+ || (LLFloater::isVisible(nearby_chat) && !nearby_chat->isMinimized() && nearby_chat->isFrontmost())))))
{
- return;
+ if(nearby_chat->isMessagePaneExpanded())
+ {
+ return;
+ }
}
//Will show toast when chat preference is set
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 4171fa1235..6cff933de6 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -181,17 +181,16 @@ void on_new_message(const LLSD& msg)
{
conversations_floater_status = CLOSED;
}
- else if ( !im_box->hasFocus() &&
- (!session_floater || !LLFloater::isVisible(session_floater)
- || session_floater->isMinimized() || !session_floater->hasFocus()))
+ else if (!session_floater || !LLFloater::isVisible(session_floater)
+ || session_floater->isMinimized() || !session_floater->hasFocus())
{
conversations_floater_status = NOT_ON_TOP;
}
- else if (im_box->getSelectedSession() != session_id)
+ else if (session_floater->hasFocus())
{
conversations_floater_status = ON_TOP;
}
- else
+ else if((session_floater->hasFocus()) && (im_box->getSelectedSession() == session_id))
{
conversations_floater_status = ON_TOP_AND_ITEM_IS_SELECTED;
}
@@ -297,8 +296,11 @@ void on_new_message(const LLSD& msg)
}
// 4. Toast
- if ("toast" == user_preferences
+ if ((("toast" == user_preferences) &&
+ (CLOSED == conversations_floater_status
+ || NOT_ON_TOP == conversations_floater_status))
|| !session_floater->isMessagePaneExpanded())
+
{
//Show IM toasts (upper right toasts)
// Skip toasting for system messages and for nearby chat