diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp index 0c5714d952..d810d365bc 100644 --- a/indra/llui/llconsole.cpp +++ b/indra/llui/llconsole.cpp @@ -159,8 +159,8 @@ void LLConsole::draw() // //static const F32 padding_horizontal = 10; //static const F32 padding_vertical = 3; - static const F32 padding_horizontal = 15; - static const F32 padding_vertical = 8; + constexpr F32 padding_horizontal = 15; + constexpr F32 padding_vertical = 8; // LLGLSUIDefault gls_ui; @@ -177,7 +177,7 @@ void LLConsole::draw() // [FIRE-35039] Add flag to show/hide the on-screen console // Get the Show On-screen Console flag from the Comm menu - static LLCachedControl showOnscreenConsole(*LLUI::getInstance()->mSettingGroups["config"], "FSShowOnscreenConsole"); + static LLUICachedControl showOnscreenConsole("FSShowOnscreenConsole"); // If the Show On-screen Console flag is disabled and the current console is the global console // (Not a debug console), then don't try to draw if (!showOnscreenConsole && this == gConsole) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 1cbbe2cefc..eaee046923 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -25456,6 +25456,17 @@ Change of this parameter will affect the layout of buttons in notification toast Value 1 + FSStatusBarShowFPSColors + + Comment + If enabled, display FPS number in a color based on the current status. + Persist + 1 + Type + Boolean + Value + 1 + FSExperimentalLostAttachmentsFix Comment @@ -26242,5 +26253,16 @@ Change of this parameter will affect the layout of buttons in notification toast Value 1 + FSLocalMeshApplyJointOffsets + + Comment + use joint offsets if they are present + Persist + 0 + Type + Boolean + Value + 0 + diff --git a/indra/newview/llagentbenefits.cpp b/indra/newview/llagentbenefits.cpp index f176b14f00..5b737e35f3 100644 --- a/indra/newview/llagentbenefits.cpp +++ b/indra/newview/llagentbenefits.cpp @@ -37,6 +37,7 @@ #include "llviewerregion.h" // + LLAgentBenefits::LLAgentBenefits(): m_initalized(false), m_animated_object_limit(-1), @@ -213,7 +214,27 @@ S32 LLAgentBenefits::getPicksLimit() const { // OpenSim legacy economy //return m_picks_limit; - return LLGridManager::instance().isInSecondLife() ? m_picks_limit : LLAgentPicksInfo::instance().getMaxNumberOfPicks(); + if (LLGridManager::instance().isInSecondLife()) + { + return m_picks_limit; + } + else + { + constexpr S32 MAX_OPENSIM_PICKS_FALLBACK = 20; // [FIRE-35276] Freeze on OpenSim (default agreed with Ubit Umarov) (originally by Haklezz) + + S32 max_profile_picks = MAX_OPENSIM_PICKS_FALLBACK; + + if (gAgent.getRegion()) + { + LLSD features; + gAgent.getRegion()->getSimulatorFeatures(features); + if (features.has("MaxProfilePicks")) + { + max_profile_picks = features["MaxProfilePicks"].asInteger(); + } + } + return max_profile_picks; + } // } diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index 5ffcc1a059..50409190eb 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -386,11 +386,6 @@ void LLFace::switchTexture(U32 ch, LLViewerTexture* new_texture) return; } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer - // Need to update the new textures to the old textures boost and max virtual size, so they won't - new_texture->setBoostLevel(mTexture[ch]->getBoostLevel()); - new_texture->addTextureStats(mTexture[ch]->getMaxVirtualSize()); - // [FIRE-35081] if (ch == LLRender::DIFFUSE_MAP) { if (getViewerObject()) diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index 429171e6be..8979b419cd 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -3147,10 +3147,10 @@ void LLPanelProfileNotes::updateData() #ifdef OPENSIM if (LLGridManager::instance().isInOpenSim() && gAgent.getRegionCapability(PROFILE_PROPERTIES_CAP).empty()) { - LLUUID avatar_id = getAvatarId(); - if (!getStarted() && avatar_id.notNull() && gAgent.getRegionCapability(PROFILE_PROPERTIES_CAP).empty() && !getSelfProfile()) - { - setIsLoading(); + LLUUID avatar_id = getAvatarId(); + if (!getStarted() && avatar_id.notNull()) + { + setIsLoading(); LLAvatarPropertiesProcessor::getInstance()->sendAvatarNotesRequest(avatar_id); } } diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index f6e682dd5e..070c56c828 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -604,44 +604,48 @@ void LLStatusBar::refresh() static LLCachedControl fsStatusBarShowFPS(gSavedSettings, "FSStatusBarShowFPS"); if (fsStatusBarShowFPS && mFPSUpdateTimer.getElapsedTimeF32() > 1.f) { + static LLCachedControl fsStatusBarShowFPSColors(gSavedSettings, "FSStatusBarShowFPSColors"); static LLCachedControl max_fps(gSavedSettings, "FramePerSecondLimit"); static LLCachedControl limit_fps_enabled(gSavedSettings, "FSLimitFramerate"); static LLCachedControl vsync_enabled(gSavedSettings, "RenderVSyncEnable"); - static const auto fps_below_limit_color = LLUIColorTable::instance().getColor("Yellow"); - static const auto fps_limit_reached_color = LLUIColorTable::instance().getColor("Green"); - static const auto vsync_limit_reached_color = LLUIColorTable::instance().getColor("Green"); - static const auto fps_uncapped_color = LLUIColorTable::instance().getColor("White"); - static const auto fps_unfocussed_color = LLUIColorTable::instance().getColor("Gray"); + static const auto fps_below_limit_color = LLUIColorTable::instance().getColor("FpsDisplayBelowLimitColor"); + static const auto fps_limit_reached_color = LLUIColorTable::instance().getColor("FpsDisplayFpsLimitReachedColor"); + static const auto vsync_limit_reached_color = LLUIColorTable::instance().getColor("FpsDisplayVSyncLimitReachedColor"); + static const auto fps_uncapped_color = LLUIColorTable::instance().getColor("FpsDisplayUncappedColor"); + static const auto fps_unfocussed_color = LLUIColorTable::instance().getColor("FpsDisplayUnfocussedColor"); static auto current_fps_color = fps_uncapped_color; mFPSUpdateTimer.reset(); const auto fps = LLTrace::get_frame_recording().getPeriodMedianPerSec(LLStatViewer::FPS); mFPSText->setText(llformat("%.1f", fps)); - // if background, go grey, else go white unless we have a cap (checked next) auto fps_color{ fps_uncapped_color }; - auto window = gViewerWindow ? gViewerWindow->getWindow() : nullptr; - if ((window && !window->getVisible()) || !gFocusMgr.getAppHasFocus()) + if (fsStatusBarShowFPSColors) { - fps_color = fps_unfocussed_color; - } - else - { - S32 vsync_freq{ -1 }; - if (window) + // if background, go grey, else go white unless we have a cap (checked next) + auto window = gViewerWindow ? gViewerWindow->getWindow() : nullptr; + if ((window && !window->getVisible()) || !gFocusMgr.getAppHasFocus()) { - vsync_freq = window->getRefreshRate(); + fps_color = fps_unfocussed_color; } + else + { + S32 vsync_freq{ -1 }; + if (window) + { + vsync_freq = window->getRefreshRate(); + } - if (limit_fps_enabled && max_fps > 0) - { - fps_color = (fps >= max_fps - 1) ? fps_limit_reached_color : fps_below_limit_color; - } - // use vsync if enabled and the freq is lower than the max_fps - if (vsync_enabled && vsync_freq > 0 && (!limit_fps_enabled || vsync_freq < (S32)max_fps)) - { - fps_color = (fps >= vsync_freq - 1) ? vsync_limit_reached_color : fps_below_limit_color; + if (limit_fps_enabled && max_fps > 0) + { + fps_color = (fps >= max_fps - 1) ? fps_limit_reached_color : fps_below_limit_color; + } + // use vsync if enabled and the freq is lower than the max_fps + if (vsync_enabled && vsync_freq > 0 && (!limit_fps_enabled || vsync_freq < (S32)max_fps)) + { + fps_color = (fps >= vsync_freq - 1) ? vsync_limit_reached_color : fps_below_limit_color; + } } } diff --git a/indra/newview/llurllineeditorctrl.cpp b/indra/newview/llurllineeditorctrl.cpp index de0ed645eb..a4d9945783 100644 --- a/indra/newview/llurllineeditorctrl.cpp +++ b/indra/newview/llurllineeditorctrl.cpp @@ -86,6 +86,10 @@ void LLURLLineEditor::copyEscapedURLToClipboard() // *HACK: Because LLSLURL is currently broken we cannot use it to check if unescaped_text is a valid SLURL (see EXT-8335). if (LLStringUtil::startsWith(unescaped_text, "http://") || LLStringUtil::startsWith(unescaped_text, "secondlife://")) // SLURL text_to_copy = utf8str_to_wstring(LLWeb::escapeURL(unescaped_text)); + // [FIRE-34020] Copy of address bar contents does not URL encode space in region name for OpenSim only + else if (LLStringUtil::startsWith(unescaped_text, "hop://")) + text_to_copy = utf8str_to_wstring(LLWeb::escapeURL(unescaped_text)); + // else // human-readable location text_to_copy = utf8str_to_wstring(unescaped_text); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 404e49fbaa..a85a7e8de2 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5166,6 +5166,13 @@ class FSSelfCheckMoveLock : public view_listener_t if (LLGridManager::getInstance()->isInSecondLife()) { new_value = gSavedPerAccountSettings.getBOOL("UseMoveLock"); + // prevents having Move Lock activated but disabled when for some reason the LSL Bridge is not worn or not ready + if (new_value && !enable_bridge_function()) + { + gSavedPerAccountSettings.setBOOL("UseMoveLock", false); + new_value = false; + } + // } #ifdef OPENSIM else diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index fd34d13037..0d9dba41d2 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -1414,11 +1414,7 @@ F32 LLViewerTextureList::updateImagesFetchTextures(F32 max_time) iter = mUUIDMap.begin(); } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer - //if (iter->second->getGLTexture()) - // Can skip processing TEX_LIST_SCALED as they are UI elements and should not be discarded - if (iter->second->getGLTexture() && get_element_type(iter->second->getBoostLevel()) == TEX_LIST_STANDARD) - // [FIRE-35081] + if (iter->second->getGLTexture()) { entries.push_back(iter->second); } diff --git a/indra/newview/skins/ansastorm/colors.xml b/indra/newview/skins/ansastorm/colors.xml index c19e259f61..7790e005dc 100644 --- a/indra/newview/skins/ansastorm/colors.xml +++ b/indra/newview/skins/ansastorm/colors.xml @@ -1413,4 +1413,19 @@ + + + + + diff --git a/indra/newview/skins/ansastorm/themes/classic_brown/colors.xml b/indra/newview/skins/ansastorm/themes/classic_brown/colors.xml index 0f57699a34..386c423b2f 100644 --- a/indra/newview/skins/ansastorm/themes/classic_brown/colors.xml +++ b/indra/newview/skins/ansastorm/themes/classic_brown/colors.xml @@ -1406,4 +1406,19 @@ + + + + + diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index 916cfbd71d..52b5ad65d5 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -1381,4 +1381,19 @@ + + + + + diff --git a/indra/newview/skins/default/xui/de/menu_hide_navbar.xml b/indra/newview/skins/default/xui/de/menu_hide_navbar.xml index f1a396ccc0..47d5ddd525 100644 --- a/indra/newview/skins/default/xui/de/menu_hide_navbar.xml +++ b/indra/newview/skins/default/xui/de/menu_hide_navbar.xml @@ -10,6 +10,7 @@ + diff --git a/indra/newview/skins/default/xui/de/panel_status_bar.xml b/indra/newview/skins/default/xui/de/panel_status_bar.xml index 8f57418564..c365729f9c 100644 --- a/indra/newview/skins/default/xui/de/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/de/panel_status_bar.xml @@ -33,7 +33,7 @@