diff options
| author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2026-07-31 19:04:00 +0300 |
|---|---|---|
| committer | Andrey Lihatskiy <118752495+marchcat@users.noreply.github.com> | 2026-07-31 19:27:23 +0300 |
| commit | a8b866c34850469463313afbf4411339bb3c8749 (patch) | |
| tree | f8f2871754669220849172ece2fe6d037b448d90 | |
| parent | f93c8694e39c0ec12d43b74c1c37c0a14da19d67 (diff) | |
#6070 Highlight ad-hoc conversation on creating
| -rw-r--r-- | indra/newview/llfloaterimcontainer.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index f4a22c6728..0da56a12a9 100644 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -155,6 +155,11 @@ void LLFloaterIMContainer::sessionIDUpdated(const LLUUID& old_session_id, const { // The general strategy when a session id is modified is to delete all related objects and create them anew. + // The conversation floater can be active while participant widgets are selected. + // Preserve that state separately so the new conversation widget can be selected + // after the server replaces an outgoing ad-hoc session id. + const bool was_active = old_session_id == getSelectedSession(); + // Note however that the LLFloaterIMSession has its session id updated through a call to sessionInitReplyReceived() // and do not need to be deleted and recreated (trying this creates loads of problems). We do need however to suppress // its related mSessions record as it's indexed with the wrong id. @@ -167,6 +172,11 @@ void LLFloaterIMContainer::sessionIDUpdated(const LLUUID& old_session_id, const // Create a new conversation with the new id addConversationListItem(new_session_id, change_focus); LLFloaterIMSessionTab::addToHost(new_session_id); + + if (was_active) + { + selectConversationPair(new_session_id, true, false, true); + } } |
