diff options
| author | Rider Linden <rider@lindenlab.com> | 2024-10-25 15:52:10 -0700 |
|---|---|---|
| committer | Rider Linden <rider@lindenlab.com> | 2025-02-26 16:26:26 -0800 |
| commit | 48ccb0f75b078670ced1f8fe8d4942abe0a6f293 (patch) | |
| tree | fc532b478d971df2d439d14833b43025380e3e4d /indra/newview | |
| parent | a097f887282f6ddb20ed8a7d50f506554216a0a2 (diff) | |
Issue #2907: When passing the injected notification message into addMessage on behalf of the system, optionally specify the agent id and name that should be used.
(cherry picked from commit 7ff297ec3fc5f878cc9a916678987c0033b7eb8a)
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llimprocessing.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llimview.cpp | 13 | ||||
| -rw-r--r-- | indra/newview/llimview.h | 4 |
3 files changed, 19 insertions, 8 deletions
diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index f5b149335b..e050fb77e0 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -603,12 +603,13 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, } } + std::string real_name; + if (!notice_name.empty()) { // The simulator has injected some sort of notice into the conversation. // findString will only replace the contents of buffer if the notice_id is found. LLTrans::findString(buffer, notice_name, notice_args); - name = SYSTEM_FROM; - from_id = LLUUID::null; + real_name = SYSTEM_FROM; } gIMMgr->addMessage(session_id, @@ -622,8 +623,9 @@ void LLIMProcessing::processNewMessage(LLUUID from_id, region_id, position, region_message, - timestamp); - + timestamp, + LLUUID::null, + real_name); } else { diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 7a2f1486ae..21c255f226 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -3142,9 +3142,16 @@ void LLIMMgr::addMessage( const LLUUID& region_id, const LLVector3& position, bool is_region_msg, - U32 timestamp) // May be zero + U32 timestamp, // May be zero + LLUUID display_id, + std::string_view display_name) { LLUUID other_participant_id = target_id; + std::string message_display_name = (display_name.empty()) ? from : std::string(display_name); + if (display_id.isNull() && (display_name.empty())) + { + display_id = other_participant_id; + } LLUUID new_session_id = session_id; if (new_session_id.isNull()) @@ -3240,7 +3247,7 @@ void LLIMMgr::addMessage( } //Play sound for new conversations - if (!skip_message & !gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNewConversation"))) + if (!skip_message && !gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNewConversation"))) { make_ui_sound("UISndNewIncomingIMSession"); } @@ -3254,7 +3261,7 @@ void LLIMMgr::addMessage( if (!LLMuteList::getInstance()->isMuted(other_participant_id, LLMute::flagTextChat) && !skip_message) { - LLIMModel::instance().addMessage(new_session_id, from, other_participant_id, msg, true, is_region_msg, timestamp); + LLIMModel::instance().addMessage(new_session_id, message_display_name, display_id, msg, true, is_region_msg, timestamp); } // Open conversation floater if offline messages are present diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 61776860e3..23f90ca795 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -368,7 +368,9 @@ public: const LLUUID& region_id = LLUUID::null, const LLVector3& position = LLVector3::zero, bool is_region_msg = false, - U32 timestamp = 0); + U32 timestamp = 0, + LLUUID display_id = LLUUID::null, + std::string_view display_name = ""); void addSystemMessage(const LLUUID& session_id, const std::string& message_name, const LLSD& args); |
