summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llconversationmodel.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp
index 728b1a3f4c..0b7c3939df 100644
--- a/indra/newview/llconversationmodel.cpp
+++ b/indra/newview/llconversationmodel.cpp
@@ -528,12 +528,8 @@ bool LLConversationSort::operator()(const LLConversationItem* const& a, const LL
{
// If both are sessions
U32 sort_order = getSortOrderSessions();
- if ((type_a == LLConversationItem::CONV_SESSION_NEARBY) || (type_b == LLConversationItem::CONV_SESSION_NEARBY))
- {
- // If one is the nearby session, put nearby session *always* first
- return (type_a == LLConversationItem::CONV_SESSION_NEARBY);
- }
- else if (sort_order == LLConversationFilter::SO_DATE)
+
+ if (sort_order == LLConversationFilter::SO_DATE)
{
// Sort by time
F64 time_a = 0.0;
@@ -552,14 +548,22 @@ bool LLConversationSort::operator()(const LLConversationItem* const& a, const LL
}
// If no time available, we'll default to sort by name at the end of this method
}
- else if (sort_order == LLConversationFilter::SO_SESSION_TYPE)
+ else
{
- if (type_a != type_b)
+ if ((type_a == LLConversationItem::CONV_SESSION_NEARBY) || (type_b == LLConversationItem::CONV_SESSION_NEARBY))
{
- // Lowest types come first. See LLConversationItem definition of types
- return (type_a < type_b);
+ // If one is the nearby session, put nearby session *always* last
+ return (type_b == LLConversationItem::CONV_SESSION_NEARBY);
}
+ else if (sort_order == LLConversationFilter::SO_SESSION_TYPE)
+ {
+ if (type_a != type_b)
+ {
+ // Lowest types come first. See LLConversationItem definition of types
+ return (type_a < type_b);
+ }
// If types are identical, we'll default to sort by name at the end of this method
+ }
}
}
else