diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h index d47281764..121109f79 100644 --- a/indra/newview/llfolderview.h +++ b/indra/newview/llfolderview.h @@ -248,6 +248,7 @@ public: void setNeedsAutoRename(BOOL val) { mNeedsAutoRename = val; } void setPinningSelectedItem(BOOL val) { mPinningSelectedItem = val; } void setAutoSelectOverride(BOOL val) { mAutoSelectOverride = val; } + bool getAutoSelectOverride() const { return mAutoSelectOverride; } BOOL getDebugFilters() { return mDebugFilters; } diff --git a/indra/newview/llinventoryactions.cpp b/indra/newview/llinventoryactions.cpp index 8fe9b6341..6666d8a1a 100644 --- a/indra/newview/llinventoryactions.cpp +++ b/indra/newview/llinventoryactions.cpp @@ -173,7 +173,15 @@ void do_create(LLInventoryModel *model, LLInventoryPanel *ptr, const LLSD& sdtyp LLFolderType::FT_NONE, LLStringUtil::null); } model->notifyObservers(); + + // Singu Note: SV-2036 + // Hack! setSelection sets category to fetching state, which disables scrolling. Scrolling, however, is desired. + // Setting autoSelectOverride to true just happens to skip the fetch check, thus allowing the scroll to proceed. + bool autoselected = ptr->getRootFolder()->getAutoSelectOverride(); + ptr->getRootFolder()->setAutoSelectOverride(true); ptr->setSelection(category, TRUE); + // Restore autoSelectOverride to whatever it was before we hijacked it. + ptr->getRootFolder()->setAutoSelectOverride(autoselected); } else if ("lsl" == type) { diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index d4ea905af..89f079258 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -2315,7 +2315,11 @@ bool LLViewerRegion::meshUploadEnabled() const bool LLViewerRegion::meshRezEnabled() const { - if (getCapability("SimulatorFeatures").empty()) + if (!capabilitiesReceived()) + { + return false; + } + else if (getCapability("SimulatorFeatures").empty()) { return !getCapability("GetMesh").empty() || !getCapability("GetMesh2").empty(); }