From b2b021feadafbff8735d3ab46343efdebab59dca Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Fri, 9 May 2025 09:14:46 -0700 Subject: adjust which webrtc tracks are enabled when the avatar crosses a region border --- indra/newview/llvoicewebrtc.cpp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'indra') diff --git a/indra/newview/llvoicewebrtc.cpp b/indra/newview/llvoicewebrtc.cpp index 08fcec86ac..cda02b7e8a 100644 --- a/indra/newview/llvoicewebrtc.cpp +++ b/indra/newview/llvoicewebrtc.cpp @@ -985,7 +985,10 @@ void LLWebRTCVoiceClient::updatePosition(void) LLWebRTCVoiceClient::participantStatePtr_t participant = findParticipantByID("Estate", gAgentID); if(participant) { - participant->mRegion = gAgent.getRegion()->getRegionID(); + if (participant->mRegion != gAgent.getRegion()->getRegionID()) { + participant->mRegion = gAgent.getRegion()->getRegionID(); + setMuteMic(mMuteMic); + } } } } @@ -3104,23 +3107,20 @@ LLVoiceWebRTCSpatialConnection::~LLVoiceWebRTCSpatialConnection() void LLVoiceWebRTCSpatialConnection::setMuteMic(bool muted) { - if (mMuted != muted) + mMuted = muted; + if (mWebRTCAudioInterface) { - mMuted = muted; - if (mWebRTCAudioInterface) + LLViewerRegion *regionp = gAgent.getRegion(); + if (regionp && mRegionID == regionp->getRegionID()) { - LLViewerRegion *regionp = gAgent.getRegion(); - if (regionp && mRegionID == regionp->getRegionID()) - { - mWebRTCAudioInterface->setMute(muted); - } - else - { - // Always mute this agent with respect to neighboring regions. - // Peers don't want to hear this agent from multiple regions - // as that'll echo. - mWebRTCAudioInterface->setMute(true); - } + mWebRTCAudioInterface->setMute(muted); + } + else + { + // Always mute this agent with respect to neighboring regions. + // Peers don't want to hear this agent from multiple regions + // as that'll echo. + mWebRTCAudioInterface->setMute(true); } } } -- cgit v1.2.3 From 28edf9e0c0309943dc406b824fc628a66d28f4ce Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Fri, 9 May 2025 09:54:47 -0700 Subject: reuse region variable instead of multiple calls to gAgent.getRegion() --- indra/newview/llvoicewebrtc.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra') diff --git a/indra/newview/llvoicewebrtc.cpp b/indra/newview/llvoicewebrtc.cpp index cda02b7e8a..9835a69e4e 100644 --- a/indra/newview/llvoicewebrtc.cpp +++ b/indra/newview/llvoicewebrtc.cpp @@ -985,8 +985,8 @@ void LLWebRTCVoiceClient::updatePosition(void) LLWebRTCVoiceClient::participantStatePtr_t participant = findParticipantByID("Estate", gAgentID); if(participant) { - if (participant->mRegion != gAgent.getRegion()->getRegionID()) { - participant->mRegion = gAgent.getRegion()->getRegionID(); + if (participant->mRegion != region->getRegionID()) { + participant->mRegion = region->getRegionID(); setMuteMic(mMuteMic); } } -- cgit v1.2.3 From 5ee83e782d4c25989859124e963a4eac1e33f413 Mon Sep 17 00:00:00 2001 From: Andrey Lihatskiy Date: Tue, 20 May 2025 20:40:26 +0300 Subject: Update macos icons (#4042, #4112) according to https://developer.apple.com/design/human-interface-guidelines/app-icons --- indra/newview/icons/release/secondlife.icns | Bin 113020 -> 302511 bytes .../release/secondlife.iconset/icon_128x128.png | Bin 0 -> 8653 bytes .../release/secondlife.iconset/icon_128x128@2x.png | Bin 0 -> 19795 bytes .../release/secondlife.iconset/icon_16x16.png | Bin 0 -> 681 bytes .../release/secondlife.iconset/icon_16x16@2x.png | Bin 0 -> 1508 bytes .../release/secondlife.iconset/icon_256x256.png | Bin 0 -> 19795 bytes .../release/secondlife.iconset/icon_256x256@2x.png | Bin 0 -> 50874 bytes .../release/secondlife.iconset/icon_32x32.png | Bin 0 -> 1508 bytes .../release/secondlife.iconset/icon_32x32@2x.png | Bin 0 -> 3697 bytes .../release/secondlife.iconset/icon_512x512.png | Bin 0 -> 50874 bytes .../release/secondlife.iconset/icon_512x512@2x.png | Bin 0 -> 105494 bytes indra/newview/icons/release/secondlife_1024.png | Bin 0 -> 105494 bytes indra/newview/icons/release/secondlife_128.png | Bin 5320 -> 0 bytes indra/newview/icons/release/secondlife_16.png | Bin 669 -> 0 bytes indra/newview/icons/release/secondlife_256.png | Bin 11572 -> 0 bytes indra/newview/icons/release/secondlife_32.png | Bin 1283 -> 0 bytes indra/newview/icons/release/secondlife_48.png | Bin 1958 -> 0 bytes 17 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 indra/newview/icons/release/secondlife.iconset/icon_128x128.png create mode 100644 indra/newview/icons/release/secondlife.iconset/icon_128x128@2x.png create mode 100644 indra/newview/icons/release/secondlife.iconset/icon_16x16.png create mode 100644 indra/newview/icons/release/secondlife.iconset/icon_16x16@2x.png create mode 100644 indra/newview/icons/release/secondlife.iconset/icon_256x256.png create mode 100644 indra/newview/icons/release/secondlife.iconset/icon_256x256@2x.png create mode 100644 indra/newview/icons/release/secondlife.iconset/icon_32x32.png create mode 100644 indra/newview/icons/release/secondlife.iconset/icon_32x32@2x.png create mode 100644 indra/newview/icons/release/secondlife.iconset/icon_512x512.png create mode 100644 indra/newview/icons/release/secondlife.iconset/icon_512x512@2x.png create mode 100644 indra/newview/icons/release/secondlife_1024.png delete mode 100644 indra/newview/icons/release/secondlife_128.png delete mode 100644 indra/newview/icons/release/secondlife_16.png delete mode 100644 indra/newview/icons/release/secondlife_256.png delete mode 100644 indra/newview/icons/release/secondlife_32.png delete mode 100644 indra/newview/icons/release/secondlife_48.png (limited to 'indra') diff --git a/indra/newview/icons/release/secondlife.icns b/indra/newview/icons/release/secondlife.icns index a30b51b67a..00d9867814 100644 Binary files a/indra/newview/icons/release/secondlife.icns and b/indra/newview/icons/release/secondlife.icns differ diff --git a/indra/newview/icons/release/secondlife.iconset/icon_128x128.png b/indra/newview/icons/release/secondlife.iconset/icon_128x128.png new file mode 100644 index 0000000000..4c519db265 Binary files /dev/null and b/indra/newview/icons/release/secondlife.iconset/icon_128x128.png differ diff --git a/indra/newview/icons/release/secondlife.iconset/icon_128x128@2x.png b/indra/newview/icons/release/secondlife.iconset/icon_128x128@2x.png new file mode 100644 index 0000000000..2a3a0092b2 Binary files /dev/null and b/indra/newview/icons/release/secondlife.iconset/icon_128x128@2x.png differ diff --git a/indra/newview/icons/release/secondlife.iconset/icon_16x16.png b/indra/newview/icons/release/secondlife.iconset/icon_16x16.png new file mode 100644 index 0000000000..fda2f276ee Binary files /dev/null and b/indra/newview/icons/release/secondlife.iconset/icon_16x16.png differ diff --git a/indra/newview/icons/release/secondlife.iconset/icon_16x16@2x.png b/indra/newview/icons/release/secondlife.iconset/icon_16x16@2x.png new file mode 100644 index 0000000000..aa4a74f204 Binary files /dev/null and b/indra/newview/icons/release/secondlife.iconset/icon_16x16@2x.png differ diff --git a/indra/newview/icons/release/secondlife.iconset/icon_256x256.png b/indra/newview/icons/release/secondlife.iconset/icon_256x256.png new file mode 100644 index 0000000000..2a3a0092b2 Binary files /dev/null and b/indra/newview/icons/release/secondlife.iconset/icon_256x256.png differ diff --git a/indra/newview/icons/release/secondlife.iconset/icon_256x256@2x.png b/indra/newview/icons/release/secondlife.iconset/icon_256x256@2x.png new file mode 100644 index 0000000000..4c28add76c Binary files /dev/null and b/indra/newview/icons/release/secondlife.iconset/icon_256x256@2x.png differ diff --git a/indra/newview/icons/release/secondlife.iconset/icon_32x32.png b/indra/newview/icons/release/secondlife.iconset/icon_32x32.png new file mode 100644 index 0000000000..aa4a74f204 Binary files /dev/null and b/indra/newview/icons/release/secondlife.iconset/icon_32x32.png differ diff --git a/indra/newview/icons/release/secondlife.iconset/icon_32x32@2x.png b/indra/newview/icons/release/secondlife.iconset/icon_32x32@2x.png new file mode 100644 index 0000000000..23a36f66cb Binary files /dev/null and b/indra/newview/icons/release/secondlife.iconset/icon_32x32@2x.png differ diff --git a/indra/newview/icons/release/secondlife.iconset/icon_512x512.png b/indra/newview/icons/release/secondlife.iconset/icon_512x512.png new file mode 100644 index 0000000000..4c28add76c Binary files /dev/null and b/indra/newview/icons/release/secondlife.iconset/icon_512x512.png differ diff --git a/indra/newview/icons/release/secondlife.iconset/icon_512x512@2x.png b/indra/newview/icons/release/secondlife.iconset/icon_512x512@2x.png new file mode 100644 index 0000000000..a53a6697f1 Binary files /dev/null and b/indra/newview/icons/release/secondlife.iconset/icon_512x512@2x.png differ diff --git a/indra/newview/icons/release/secondlife_1024.png b/indra/newview/icons/release/secondlife_1024.png new file mode 100644 index 0000000000..a53a6697f1 Binary files /dev/null and b/indra/newview/icons/release/secondlife_1024.png differ diff --git a/indra/newview/icons/release/secondlife_128.png b/indra/newview/icons/release/secondlife_128.png deleted file mode 100644 index 2f21c1c7fc..0000000000 Binary files a/indra/newview/icons/release/secondlife_128.png and /dev/null differ diff --git a/indra/newview/icons/release/secondlife_16.png b/indra/newview/icons/release/secondlife_16.png deleted file mode 100644 index 68f1427309..0000000000 Binary files a/indra/newview/icons/release/secondlife_16.png and /dev/null differ diff --git a/indra/newview/icons/release/secondlife_256.png b/indra/newview/icons/release/secondlife_256.png deleted file mode 100644 index 8f324910e7..0000000000 Binary files a/indra/newview/icons/release/secondlife_256.png and /dev/null differ diff --git a/indra/newview/icons/release/secondlife_32.png b/indra/newview/icons/release/secondlife_32.png deleted file mode 100644 index 2b7cdef03d..0000000000 Binary files a/indra/newview/icons/release/secondlife_32.png and /dev/null differ diff --git a/indra/newview/icons/release/secondlife_48.png b/indra/newview/icons/release/secondlife_48.png deleted file mode 100644 index c2ef372dd7..0000000000 Binary files a/indra/newview/icons/release/secondlife_48.png and /dev/null differ -- cgit v1.2.3 From 0296bd6ca78a8f962e42156265a57e07bb6c1164 Mon Sep 17 00:00:00 2001 From: Mnikolenko Productengine Date: Wed, 21 May 2025 02:50:39 +0300 Subject: #p430 don't show MFA dialog twice --- indra/newview/lllogininstance.cpp | 27 +++++++++++++++++++++++++++ indra/newview/lllogininstance.h | 2 ++ indra/newview/llstartup.cpp | 20 +------------------- 3 files changed, 30 insertions(+), 19 deletions(-) (limited to 'indra') diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp index cbc3744aa3..4bffe7feac 100644 --- a/indra/newview/lllogininstance.cpp +++ b/indra/newview/lllogininstance.cpp @@ -329,6 +329,15 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event) LL_DEBUGS("LLLogin") << "reason " << reason_response << " message " << message_response << LL_ENDL; + + if (response.has("mfa_hash")) + { + mRequestData["params"]["mfa_hash"] = response["mfa_hash"]; + mRequestData["params"]["token"] = ""; + + saveMFAHash(response); + } + // For the cases of critical message or TOS agreement, // start the TOS dialog. The dialog response will be handled // by the LLLoginInstance::handleTOSResponse() callback. @@ -593,6 +602,24 @@ bool LLLoginInstance::handleMFAChallenge(LLSD const & notif, LLSD const & respon return true; } +void LLLoginInstance::saveMFAHash(LLSD const& response) +{ + std::string grid(LLGridManager::getInstance()->getGridId()); + std::string user_id(LLStartUp::getUserId()); + + // Only save mfa_hash for future logins if the user wants their info remembered. + if (response.has("mfa_hash") && gSavedSettings.getBOOL("RememberUser") && LLLoginInstance::getInstance()->saveMFA()) + { + gSecAPIHandler->addToProtectedMap("mfa_hash", grid, user_id, response["mfa_hash"]); + } + else if (!LLLoginInstance::getInstance()->saveMFA()) + { + gSecAPIHandler->removeFromProtectedMap("mfa_hash", grid, user_id); + } + // TODO(brad) - related to SL-17223 consider building a better interface that sync's automatically + gSecAPIHandler->syncProtectedMap(); +} + std::string construct_start_string() { std::string start; diff --git a/indra/newview/lllogininstance.h b/indra/newview/lllogininstance.h index 748909c069..941b378b14 100644 --- a/indra/newview/lllogininstance.h +++ b/indra/newview/lllogininstance.h @@ -70,6 +70,8 @@ public: void setNotificationsInterface(LLNotificationsInterface* ni) { mNotifications = ni; } LLNotificationsInterface& getNotificationsInterface() const { return *mNotifications; } + void saveMFAHash(LLSD const& response); + private: typedef std::shared_ptr ResponsePtr; void constructAuthParams(LLPointer user_credentials); diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 4f60f98b49..cc4f49c0b4 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -3884,25 +3884,7 @@ bool process_login_success_response() LLViewerMedia::getInstance()->openIDSetup(openid_url, openid_token); } - - // Only save mfa_hash for future logins if the user wants their info remembered. - if(response.has("mfa_hash") - && gSavedSettings.getBOOL("RememberUser") - && LLLoginInstance::getInstance()->saveMFA()) - { - std::string grid(LLGridManager::getInstance()->getGridId()); - std::string user_id(gUserCredential->userID()); - gSecAPIHandler->addToProtectedMap("mfa_hash", grid, user_id, response["mfa_hash"]); - // TODO(brad) - related to SL-17223 consider building a better interface that sync's automatically - gSecAPIHandler->syncProtectedMap(); - } - else if (!LLLoginInstance::getInstance()->saveMFA()) - { - std::string grid(LLGridManager::getInstance()->getGridId()); - std::string user_id(gUserCredential->userID()); - gSecAPIHandler->removeFromProtectedMap("mfa_hash", grid, user_id); - gSecAPIHandler->syncProtectedMap(); - } + LLLoginInstance::getInstance()->saveMFAHash(response); bool success = false; // JC: gesture loading done below, when we have an asset system -- cgit v1.2.3 From 3fa76746616e13c6cc5ba8f2bb02d05262fafa3e Mon Sep 17 00:00:00 2001 From: Maxim Nikolenko Date: Wed, 21 May 2025 15:44:48 +0300 Subject: fix test for lllogininstance.cpp --- indra/newview/tests/lllogininstance_test.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'indra') diff --git a/indra/newview/tests/lllogininstance_test.cpp b/indra/newview/tests/lllogininstance_test.cpp index bff2289a7c..29ca903256 100644 --- a/indra/newview/tests/lllogininstance_test.cpp +++ b/indra/newview/tests/lllogininstance_test.cpp @@ -66,6 +66,7 @@ static LLEventStream gTestPump("test_pump"); #include "../llstartup.h" LLSLURL LLStartUp::sStartSLURL; LLSLURL& LLStartUp::getStartSLURL() { return sStartSLURL; } +std::string LLStartUp::getUserId() { return ""; }; #include "lllogin.h" -- cgit v1.2.3 From 25e68341272549905298cfd9ae122cb27ae72102 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Geenz\" Goodman" Date: Thu, 22 May 2025 08:14:41 -0400 Subject: Fix null outfit gallery observer pointer --- indra/newview/lloutfitgallery.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'indra') diff --git a/indra/newview/lloutfitgallery.cpp b/indra/newview/lloutfitgallery.cpp index b84b0b3a8c..9d05276db4 100644 --- a/indra/newview/lloutfitgallery.cpp +++ b/indra/newview/lloutfitgallery.cpp @@ -793,6 +793,12 @@ void LLOutfitGallery::updateAddedCategory(LLUUID cat_id) LLViewerInventoryCategory *cat = gInventory.getCategory(cat_id); if (!cat) return; + if (mOutfitsObserver == NULL) + { + mOutfitsObserver = new LLInventoryCategoriesObserver(); + gInventory.addObserver(mOutfitsObserver); + } + if (!isOutfitFolder(cat)) { // Assume a subfolder that contains or will contain outfits, track it @@ -820,12 +826,6 @@ void LLOutfitGallery::updateAddedCategory(LLUUID cat_id) if (!outfit_category) return; - if (mOutfitsObserver == NULL) - { - mOutfitsObserver = new LLInventoryCategoriesObserver(); - gInventory.addObserver(mOutfitsObserver); - } - // Start observing changes in "My Outfits" category. mOutfitsObserver->addCategory(cat_id, boost::bind(&LLOutfitGallery::refreshOutfit, this, cat_id), true); -- cgit v1.2.3 From b62e7f96c235dd5754e329fcf13c0eea2352bbb1 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Geenz\" Goodman" Date: Thu, 22 May 2025 12:53:37 -0400 Subject: Remove mOutfitsObserver, use mCategoriesObserver from our base. --- indra/newview/lloutfitgallery.cpp | 19 +++---------------- indra/newview/lloutfitgallery.h | 3 --- 2 files changed, 3 insertions(+), 19 deletions(-) (limited to 'indra') diff --git a/indra/newview/lloutfitgallery.cpp b/indra/newview/lloutfitgallery.cpp index 9d05276db4..98b7d74cd2 100644 --- a/indra/newview/lloutfitgallery.cpp +++ b/indra/newview/lloutfitgallery.cpp @@ -69,7 +69,6 @@ const S32 GALLERY_ITEMS_PER_ROW_MIN = 2; LLOutfitGallery::LLOutfitGallery(const LLOutfitGallery::Params& p) : LLOutfitListBase(), - mOutfitsObserver(NULL), mScrollPanel(NULL), mGalleryPanel(NULL), mLastRowPanel(NULL), @@ -730,12 +729,6 @@ LLOutfitGallery::~LLOutfitGallery() { delete mOutfitGalleryMenu; - if (gInventory.containsObserver(mOutfitsObserver)) - { - gInventory.removeObserver(mOutfitsObserver); - } - delete mOutfitsObserver; - while (!mUnusedRowPanels.empty()) { LLPanel* panelp = mUnusedRowPanels.back(); @@ -793,17 +786,11 @@ void LLOutfitGallery::updateAddedCategory(LLUUID cat_id) LLViewerInventoryCategory *cat = gInventory.getCategory(cat_id); if (!cat) return; - if (mOutfitsObserver == NULL) - { - mOutfitsObserver = new LLInventoryCategoriesObserver(); - gInventory.addObserver(mOutfitsObserver); - } - if (!isOutfitFolder(cat)) { // Assume a subfolder that contains or will contain outfits, track it const LLUUID outfits = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS); - mOutfitsObserver->addCategory(cat_id, [this, outfits]() + mCategoriesObserver->addCategory(cat_id, [this, outfits]() { observerCallback(outfits); }); @@ -827,7 +814,7 @@ void LLOutfitGallery::updateAddedCategory(LLUUID cat_id) return; // Start observing changes in "My Outfits" category. - mOutfitsObserver->addCategory(cat_id, + mCategoriesObserver->addCategory(cat_id, boost::bind(&LLOutfitGallery::refreshOutfit, this, cat_id), true); outfit_category->fetch(); @@ -840,7 +827,7 @@ void LLOutfitGallery::updateRemovedCategory(LLUUID cat_id) if (outfits_iter != mOutfitMap.end()) { // 0. Remove category from observer. - mOutfitsObserver->removeCategory(cat_id); + mCategoriesObserver->removeCategory(cat_id); //const LLUUID& outfit_id = outfits_iter->first; LLOutfitGalleryItem* item = outfits_iter->second; diff --git a/indra/newview/lloutfitgallery.h b/indra/newview/lloutfitgallery.h index 541ea2f9d4..a2a5fe26eb 100644 --- a/indra/newview/lloutfitgallery.h +++ b/indra/newview/lloutfitgallery.h @@ -184,9 +184,6 @@ private: typedef item_num_map_t::value_type item_numb_map_value_t; item_num_map_t mItemIndexMap; std::map mIndexToItemMap; - - - LLInventoryCategoriesObserver* mOutfitsObserver; }; class LLOutfitGalleryContextMenu : public LLOutfitContextMenu { -- cgit v1.2.3 From 5b12428e65a5edf56409cf3fdc858827da7460f0 Mon Sep 17 00:00:00 2001 From: Maxim Nikolenko Date: Thu, 22 May 2025 19:53:53 +0300 Subject: #4132 fix name mentions sometimes not being highlighted --- indra/llui/lltextbase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index c1b01f420b..778b253c3c 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -483,7 +483,7 @@ std::vector> LLTextBase::getHighlightedBgRects() F32 left_precise = (F32)line_iter->mRect.mLeft; F32 right_precise = (F32)line_iter->mRect.mLeft; - for (; segment_iter != mSegments.end(); ++segment_iter) + for (; segment_iter != mSegments.end(); ++segment_iter, segment_offset = 0) { LLTextSegmentPtr segmentp = *segment_iter; -- cgit v1.2.3