diff --git a/doc/contributions.txt b/doc/contributions.txt
index 33bd251a30..3adf7e85df 100755
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -370,6 +370,8 @@ Dimitrio Lewis
Dirk
Draconis Neurocam
STORM-1259
+Drake Arconis
+ MAINT-6107
Drew Dri
VWR-19683
Drew Dwi
@@ -772,6 +774,12 @@ Kitty Barnett
VWR-24217
STORM-1804
MAINT-5416
+ MAINT-6041
+ MAINT-6142
+ MAINT-6144
+ MAINT-6152
+ MAINT-6153
+ MAINT-6154
Kolor Fall
Komiko Okamoto
Korvel Noh
diff --git a/indra/llprimitive/lldaeloader.cpp b/indra/llprimitive/lldaeloader.cpp
index 16f8259853..4597a97050 100644
--- a/indra/llprimitive/lldaeloader.cpp
+++ b/indra/llprimitive/lldaeloader.cpp
@@ -848,7 +848,8 @@ LLDAELoader::LLDAELoader(
void* opaque_userdata,
JointTransformMap& jointMap,
JointSet& jointsFromNodes,
- U32 modelLimit)
+ U32 modelLimit,
+ bool preprocess)
: LLModelLoader(
filename,
lod,
@@ -859,7 +860,8 @@ LLDAELoader::LLDAELoader(
opaque_userdata,
jointMap,
jointsFromNodes),
-mGeneratedModelLimit(modelLimit)
+mGeneratedModelLimit(modelLimit),
+mPreprocessDAE(preprocess)
{
}
@@ -892,12 +894,20 @@ bool LLDAELoader::OpenFile(const std::string& filename)
//no suitable slm exists, load from the .dae file
DAE dae;
-
- std::string fileURI = "from memory"; // set to a null device
- // Bug fixes in mesh importer by Drake Arconis
- //domCOLLADA* dom = dae.openFromMemory(fileURI, preprocessDAE(filename).c_str());
- domCOLLADA* dom = dae.openFromMemory(fileURI, preprocessDAE(tmp_file).c_str());
- //
+ domCOLLADA* dom;
+ if (mPreprocessDAE)
+ {
+ // Bug fixes in mesh importer by Drake Arconis
+ //dom = dae.openFromMemory(filename, preprocessDAE(filename).c_str());
+ dom = dae.openFromMemory(filename, preprocessDAE(tmp_file).c_str());
+ }
+ else
+ {
+ LL_INFOS() << "Skipping dae preprocessing" << LL_ENDL;
+ // Bug fixes in mesh importer by Drake Arconis
+ //dom = dae.open(filename);
+ dom = dae.open(tmp_file);
+ }
if (!dom)
{
@@ -925,7 +935,7 @@ bool LLDAELoader::OpenFile(const std::string& filename)
daeInt count = db->getElementCount(NULL, COLLADA_TYPE_MESH);
- daeDocument* doc = dae.getDoc(fileURI);
+ daeDocument* doc = dae.getDoc(filename);
if (!doc)
{
LL_WARNS() << "can't find internal doc" << LL_ENDL;
diff --git a/indra/llprimitive/lldaeloader.h b/indra/llprimitive/lldaeloader.h
index 19a85a5339..27db5326d5 100644
--- a/indra/llprimitive/lldaeloader.h
+++ b/indra/llprimitive/lldaeloader.h
@@ -56,7 +56,8 @@ public:
void* opaque_userdata,
JointTransformMap& jointMap,
JointSet& jointsFromNodes,
- U32 modelLimit);
+ U32 modelLimit,
+ bool preprocess);
virtual ~LLDAELoader() ;
virtual bool OpenFile(const std::string& filename);
@@ -104,6 +105,7 @@ protected:
private:
U32 mGeneratedModelLimit; // Attempt to limit amount of generated submodels
+ bool mPreprocessDAE;
};
#endif // LL_LLDAELLOADER_H
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 18dfa3932a..5d8fd4a389 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -1446,6 +1446,17 @@
U32
Value
768
+
+ ImporterPreprocessDAE
+
IMShowTime
if (!url.empty())
{
- mBtnScriptLimits = getChild("Scripts...");
if(mBtnScriptLimits)
{
mBtnScriptLimits->setClickedCallback(onClickScriptLimits, this);
@@ -514,28 +538,11 @@ BOOL LLPanelLandGeneral::postBuild()
}
else
{
- mBtnScriptLimits = getChild("Scripts...");
if(mBtnScriptLimits)
{
mBtnScriptLimits->setVisible(false);
}
}
-
- mBtnBuyGroupLand = getChild("Buy For Group...");
- mBtnBuyGroupLand->setClickedCallback(onClickBuyLand, (void*)&BUY_GROUP_LAND);
-
-
- mBtnBuyPass = getChild("Buy Pass...");
- mBtnBuyPass->setClickedCallback(onClickBuyPass, this);
-
- mBtnReleaseLand = getChild("Abandon Land...");
- mBtnReleaseLand->setClickedCallback(onClickRelease, NULL);
-
- mBtnReclaimLand = getChild("Reclaim Land...");
- mBtnReclaimLand->setClickedCallback(onClickReclaim, NULL);
-
- mBtnStartAuction = getChild("Linden Sale...");
- mBtnStartAuction->setClickedCallback(onClickStartAuction, this);
return TRUE;
}
@@ -549,9 +556,61 @@ LLPanelLandGeneral::~LLPanelLandGeneral()
// public
void LLPanelLandGeneral::refresh()
{
- mBtnStartAuction->setVisible(gAgent.isGodlike());
+ mEditName->setEnabled(FALSE);
+ mEditName->setText(LLStringUtil::null);
- LLParcel *parcel = mParcel->getParcel();
+ mEditUUID->setText(LLStringUtil::null);
+
+ mEditDesc->setEnabled(FALSE);
+ mEditDesc->setText(getString("no_selection_text"));
+
+ mTextSalePending->setText(LLStringUtil::null);
+ mTextSalePending->setEnabled(FALSE);
+
+ mBtnDeedToGroup->setEnabled(FALSE);
+ mBtnSetGroup->setEnabled(FALSE);
+ mBtnStartAuction->setEnabled(FALSE);
+
+ mCheckDeedToGroup ->set(FALSE);
+ mCheckDeedToGroup ->setEnabled(FALSE);
+ mCheckContributeWithDeed->set(FALSE);
+ mCheckContributeWithDeed->setEnabled(FALSE);
+
+ mTextOwner->setText(LLStringUtil::null);
+ mContentRating->setText(LLStringUtil::null);
+ mLandType->setText(LLStringUtil::null);
+ // Doesn't exists as of 2014-04-14
+ //mBtnProfile->setLabel(getString("profile_text"));
+ //mBtnProfile->setEnabled(FALSE);
+
+ mTextClaimDate->setText(LLStringUtil::null);
+ mTextGroup->setText(LLStringUtil::null);
+ mTextPrice->setText(LLStringUtil::null);
+
+ mSaleInfoForSale1->setVisible(FALSE);
+ mSaleInfoForSale2->setVisible(FALSE);
+ mSaleInfoForSaleObjects->setVisible(FALSE);
+ mSaleInfoForSaleNoObjects->setVisible(FALSE);
+ mSaleInfoNotForSale->setVisible(FALSE);
+ mBtnSellLand->setVisible(FALSE);
+ mBtnStopSellLand->setVisible(FALSE);
+
+ mTextPriceLabel->setText(LLStringUtil::null);
+ mTextDwell->setText(LLStringUtil::null);
+
+ mBtnBuyLand->setEnabled(FALSE);
+ mBtnScriptLimits->setEnabled(FALSE);
+ mBtnBuyGroupLand->setEnabled(FALSE);
+ mBtnReleaseLand->setEnabled(FALSE);
+ mBtnReclaimLand->setEnabled(FALSE);
+ mBtnBuyPass->setEnabled(FALSE);
+
+ if(gDisconnected)
+ {
+ return;
+ }
+
+ mBtnStartAuction->setVisible(gAgent.isGodlike());
bool region_owner = false;
LLViewerRegion* regionp = LLViewerParcelMgr::getInstance()->getSelectionRegion();
if(regionp && (regionp->getOwner() == gAgent.getID()))
@@ -565,59 +624,8 @@ void LLPanelLandGeneral::refresh()
mBtnReleaseLand->setVisible(TRUE);
mBtnReclaimLand->setVisible(FALSE);
}
- if (!parcel)
- {
- // nothing selected, disable panel
- mEditName->setEnabled(FALSE);
- mEditName->setText(LLStringUtil::null);
-
- mEditUUID->setText(LLStringUtil::null);
-
- mEditDesc->setEnabled(FALSE);
- mEditDesc->setText(getString("no_selection_text"));
-
- mTextSalePending->setText(LLStringUtil::null);
- mTextSalePending->setEnabled(FALSE);
-
- mBtnDeedToGroup->setEnabled(FALSE);
- mBtnSetGroup->setEnabled(FALSE);
- mBtnStartAuction->setEnabled(FALSE);
-
- mCheckDeedToGroup ->set(FALSE);
- mCheckDeedToGroup ->setEnabled(FALSE);
- mCheckContributeWithDeed->set(FALSE);
- mCheckContributeWithDeed->setEnabled(FALSE);
-
- mTextOwner->setText(LLStringUtil::null);
- mContentRating->setText(LLStringUtil::null);
- mLandType->setText(LLStringUtil::null);
- // Doesn't exists as of 2014-04-14
- //mBtnProfile->setLabel(getString("profile_text"));
- //mBtnProfile->setEnabled(FALSE);
-
- mTextClaimDate->setText(LLStringUtil::null);
- mTextGroup->setText(LLStringUtil::null);
- mTextPrice->setText(LLStringUtil::null);
-
- mSaleInfoForSale1->setVisible(FALSE);
- mSaleInfoForSale2->setVisible(FALSE);
- mSaleInfoForSaleObjects->setVisible(FALSE);
- mSaleInfoForSaleNoObjects->setVisible(FALSE);
- mSaleInfoNotForSale->setVisible(FALSE);
- mBtnSellLand->setVisible(FALSE);
- mBtnStopSellLand->setVisible(FALSE);
-
- mTextPriceLabel->setText(LLStringUtil::null);
- mTextDwell->setText(LLStringUtil::null);
-
- mBtnBuyLand->setEnabled(FALSE);
- mBtnScriptLimits->setEnabled(FALSE);
- mBtnBuyGroupLand->setEnabled(FALSE);
- mBtnReleaseLand->setEnabled(FALSE);
- mBtnReclaimLand->setEnabled(FALSE);
- mBtnBuyPass->setEnabled(FALSE);
- }
- else
+ LLParcel *parcel = mParcel->getParcel();
+ if (parcel)
{
// something selected, hooray!
BOOL is_leased = (LLParcel::OS_LEASED == parcel->getOwnershipStatus());
@@ -1342,7 +1350,7 @@ void LLPanelLandObjects::refresh()
mOwnerList->deleteAllItems();
mOwnerList->setEnabled(FALSE);
- if (!parcel)
+ if (!parcel || gDisconnected)
{
mSWTotalObjects->setTextArg("[COUNT]", llformat("%d", 0));
mSWTotalObjects->setTextArg("[TOTAL]", llformat("%d", 0));
@@ -2124,7 +2132,7 @@ void LLPanelLandOptions::refresh()
refreshSearch();
LLParcel *parcel = mParcel->getParcel();
- if (!parcel)
+ if (!parcel || gDisconnected)
{
mCheckEditObjects ->set(FALSE);
mCheckEditObjects ->setEnabled(FALSE);
@@ -2365,7 +2373,7 @@ void LLPanelLandOptions::draw()
void LLPanelLandOptions::refreshSearch()
{
LLParcel *parcel = mParcel->getParcel();
- if (!parcel)
+ if (!parcel || gDisconnected)
{
mCheckShowDirectory->set(FALSE);
mCheckShowDirectory->setEnabled(FALSE);
@@ -2651,7 +2659,7 @@ void LLPanelLandAccess::refresh()
LLParcel *parcel = mParcel->getParcel();
// Display options
- if (parcel)
+ if (parcel && !gDisconnected)
{
BOOL use_access_list = parcel->getParcelFlag(PF_USE_ACCESS_LIST);
BOOL use_group = parcel->getParcelFlag(PF_USE_ACCESS_GROUP);
@@ -2845,7 +2853,7 @@ void LLPanelLandAccess::refresh_ui()
getChildView("remove_banned")->setEnabled(FALSE);
LLParcel *parcel = mParcel->getParcel();
- if (parcel)
+ if (parcel && !gDisconnected)
{
BOOL can_manage_allowed = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_MANAGE_ALLOWED);
BOOL can_manage_banned = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_MANAGE_BANNED);
@@ -3204,7 +3212,7 @@ BOOL LLPanelLandCovenant::postBuild()
void LLPanelLandCovenant::refresh()
{
LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion();
- if(!region) return;
+ if(!region || gDisconnected) return;
LLTextBox* region_name = getChild("region_name_text");
if (region_name)
@@ -3429,7 +3437,7 @@ void LLPanelLandExperiences::refreshPanel(LLPanelExperienceListEditor* panel, U3
{
return;
}
- if (parcel == NULL)
+ if (!parcel || gDisconnected)
{
// disable the panel
panel->setEnabled(FALSE);
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index d47818bd36..5226f52646 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -1865,7 +1865,8 @@ void LLModelPreview::loadModel(std::string filename, S32 lod, bool force_disable
this,
mJointTransformMap,
mJointsFromNode,
- gSavedSettings.getU32("ImporterModelLimit"));
+ gSavedSettings.getU32("ImporterModelLimit"),
+ gSavedSettings.getBOOL("ImporterPreprocessDAE"));
if (force_disable_slm)
{
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 9536d79516..e85c2a44ef 100755
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -250,10 +250,12 @@ BOOL LLFloaterRegionInfo::postBuild()
panel->buildFromFile("panel_region_debug.xml");
mTab->addTabPanel(panel);
- // Crash fix
- //if(!gAgent.getRegion()->getCapability("RegionExperiences").empty())
- if (gAgent.getRegion() && !gAgent.getRegion()->getCapability("RegionExperiences").empty())
- //
+ if(gDisconnected)
+ {
+ return TRUE;
+ }
+
+ if(!gAgent.getRegion()->getCapability("RegionExperiences").empty())
{
panel = new LLPanelRegionExperiences;
mInfoPanels.push_back(panel);
@@ -276,6 +278,11 @@ LLFloaterRegionInfo::~LLFloaterRegionInfo()
void LLFloaterRegionInfo::onOpen(const LLSD& key)
{
+ if(gDisconnected)
+ {
+ disableTabCtrls();
+ return;
+ }
refreshFromRegion(gAgent.getRegion());
requestRegionInfo();
requestMeshRezInfo();
@@ -516,7 +523,16 @@ LLPanelRegionExperiences* LLFloaterRegionInfo::getPanelExperiences()
return (LLPanelRegionExperiences*)tab->getChild("Experiences");
}
+void LLFloaterRegionInfo::disableTabCtrls()
+{
+ LLTabContainer* tab = getChild("region_panels");
+ tab->getChild("General")->setCtrlsEnabled(FALSE);
+ tab->getChild("Debug")->setCtrlsEnabled(FALSE);
+ tab->getChild("Terrain")->setCtrlsEnabled(FALSE);
+ tab->getChild("panel_env_info")->setCtrlsEnabled(FALSE);
+ tab->getChild("Estate")->setCtrlsEnabled(FALSE);
+}
// Aurora Sim - Region Settings Console
// static
@@ -3320,6 +3336,11 @@ bool LLPanelEnvironmentInfo::refreshFromRegion(LLViewerRegion* region)
void LLPanelEnvironmentInfo::refresh()
{
+ if(gDisconnected)
+ {
+ return;
+ }
+
populateWaterPresetsList();
populateSkyPresetsList();
populateDayCyclesList();
diff --git a/indra/newview/llfloaterregioninfo.h b/indra/newview/llfloaterregioninfo.h
index 9bb95ad474..c5de465fc6 100755
--- a/indra/newview/llfloaterregioninfo.h
+++ b/indra/newview/llfloaterregioninfo.h
@@ -116,6 +116,7 @@ private:
protected:
void onTabSelected(const LLSD& param);
+ void disableTabCtrls();
void refreshFromRegion(LLViewerRegion* region);
// member data
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index e8b0796675..befe600ca9 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -3593,6 +3593,11 @@ void LLInventoryModel::removeCategory(const LLUUID& category_id)
void LLInventoryModel::removeObject(const LLUUID& object_id)
{
+ if(object_id.isNull())
+ {
+ return;
+ }
+
LLInventoryObject* obj = getObject(object_id);
if (dynamic_cast(obj))
{
diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp
index d81401b59b..9480dfdc4d 100755
--- a/indra/newview/llinventoryobserver.cpp
+++ b/indra/newview/llinventoryobserver.cpp
@@ -306,6 +306,12 @@ void LLInventoryFetchItemsObserver::startFetch()
continue;
}
+ if ((*it).isNull())
+ {
+ LL_WARNS("Inventory") << "Skip fetching for a NULL uuid" << LL_ENDL;
+ continue;
+ }
+
// It's incomplete, so put it on the incomplete container, and
// pack this on the message.
mIncomplete.push_back(*it);
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 589aaeec76..c6a33138f4 100755
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -1485,6 +1485,11 @@ void LLInventoryPanel::openInventoryPanelAndSetSelection(BOOL auto_open, const L
}
else
{
+ LLFloater* floater_inventory = LLFloaterReg::getInstance("inventory");
+ if (floater_inventory)
+ {
+ floater_inventory->setFocus(TRUE);
+ }
active_panel->setSelection(obj_id, TAKE_FOCUS_YES);
}
}
diff --git a/indra/newview/llnotificationlistitem.cpp b/indra/newview/llnotificationlistitem.cpp
index f45830bae1..019122539e 100644
--- a/indra/newview/llnotificationlistitem.cpp
+++ b/indra/newview/llnotificationlistitem.cpp
@@ -393,10 +393,7 @@ LLGroupNoticeNotificationListItem::LLGroupNoticeNotificationListItem(const Param
buildFromFile("panel_notification_list_item.xml");
}
-// Crash fix in LLGroupMgr::notifyObservers()
-//LLGroupNoticeNotificationListItem::~LLGroupNoticeNotificationListItem()
LLGroupNotificationListItem::~LLGroupNotificationListItem()
-//
{
LLGroupMgr::getInstance()->removeObserver(this);
}
@@ -587,8 +584,6 @@ void LLGroupNoticeNotificationListItem::close()
mInventoryOffer->forceResponse(IOR_DECLINE);
mInventoryOffer = NULL;
}
- // Crash fix in LLGroupMgr::notifyObservers()
- //LLGroupMgr::getInstance()->removeObserver(this);
}
void LLGroupNoticeNotificationListItem::onClickAttachment()
diff --git a/indra/newview/llnotificationlistitem.h b/indra/newview/llnotificationlistitem.h
index 2343e09a29..d2d90b35e3 100644
--- a/indra/newview/llnotificationlistitem.h
+++ b/indra/newview/llnotificationlistitem.h
@@ -140,7 +140,7 @@ class LLGroupNotificationListItem
: public LLNotificationListItem, public LLGroupMgrObserver
{
public:
- virtual ~LLGroupNotificationListItem(); // Crash fix in LLGroupMgr::notifyObservers()
+ virtual ~LLGroupNotificationListItem();
virtual BOOL postBuild();
void setGroupId(const LLUUID& value);
@@ -202,7 +202,6 @@ class LLGroupNoticeNotificationListItem
: public LLGroupNotificationListItem
{
public:
- //~LLGroupNoticeNotificationListItem(); // Crash fix in LLGroupMgr::notifyObservers()
static std::set getTypes();
virtual BOOL postBuild();
diff --git a/indra/newview/llpanelgroupexperiences.cpp b/indra/newview/llpanelgroupexperiences.cpp
index fb3a97318e..ea570d6575 100644
--- a/indra/newview/llpanelgroupexperiences.cpp
+++ b/indra/newview/llpanelgroupexperiences.cpp
@@ -30,7 +30,7 @@
#include "lluictrlfactory.h"
#include "roles_constants.h"
-
+#include "llappviewer.h"
#include "llhttpclient.h"
#include "llagent.h"
#include "llviewerregion.h"
@@ -98,7 +98,7 @@ BOOL LLPanelGroupExperiences::postBuild()
void LLPanelGroupExperiences::activate()
{
- if (getGroupID() == LLUUID::null)
+ if ((getGroupID() == LLUUID::null) || gDisconnected)
{
return;
}
@@ -111,7 +111,7 @@ void LLPanelGroupExperiences::activate()
//
// search for experiences owned by the current group
- std::string url = gAgent.getRegion()->getCapability("GroupExperiences");
+ std::string url = (gAgent.getRegion()) ? gAgent.getRegion()->getCapability("GroupExperiences") : LLStringUtil::null;
if (!url.empty())
{
url += "?" + getGroupID().asString();
diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp
index c59f880583..a6af492297 100755
--- a/indra/newview/llpreviewtexture.cpp
+++ b/indra/newview/llpreviewtexture.cpp
@@ -137,15 +137,11 @@ LLPreviewTexture::~LLPreviewTexture()
getWindow()->decBusyCount();
}
- // mImage can be 0.
- // mImage->setBoostLevel(mImageOldBoostLevel);
-
- if( mImage )
+ if (mImage.notNull())
+ {
mImage->setBoostLevel(mImageOldBoostLevel);
-
- //
-
- mImage = NULL;
+ mImage = NULL;
+ }
}
// virtual
diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp
index 3925630299..dc8c407670 100755
--- a/indra/newview/lltoolmgr.cpp
+++ b/indra/newview/lltoolmgr.cpp
@@ -419,11 +419,9 @@ void LLToolMgr::clearTransientTool()
void LLToolMgr::onAppFocusLost()
{
- // During shutdown the viewer might be in a state that leads to crashes.
- if( LLApp::isQuitting() )
+ if (LLApp::isQuitting())
return;
- //
-
+
if (mSelectedTool)
{
mSelectedTool->handleDeselect();
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 31cf9f3fe7..f767faa2cb 100755
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -2177,12 +2177,9 @@ bool LLVOVolume::notifyAboutMissingAsset(LLViewerTexture *texture)
for(mmap_UUID_MAP_t::iterator range_it = range.first; range_it != range.second; ++range_it)
{
LLMaterialPtr cur_material = getTEMaterialParams(range_it->second.te);
- // Possible crash fix by Drake Arconis
if (cur_material.isNull())
- {
continue;
- }
- //
+
switch(range_it->second.map)
{
case LLRender::DIFFUSE_MAP:
@@ -3984,10 +3981,7 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector4a& start, const LLVector4a&
if (mDrawable->isState(LLDrawable::RIGGED))
{
-// if ((pick_rigged) || ((getAvatar()->isSelf()) && (LLFloater::isVisible(gFloaterTools))))
-// [SL:KB] - Patch: UI-PickRiggedAttachment | Checked: 2012-07-12 (Catznip-3.3)
- if ((pick_rigged) || (getAvatar() && getAvatar()->isSelf() && (LLFloater::isVisible(gFloaterTools))))
-// [/SL:KB]
+ if ((pick_rigged) || (getAvatar() && (getAvatar()->isSelf()) && (LLFloater::isVisible(gFloaterTools))))
{
updateRiggedVolume(true);
volume = mRiggedVolume;
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
index e04cc4a7f5..1535a66c14 100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
@@ -640,6 +640,7 @@
height="15"
increment="0.125"
initial_value="160"
+ min_val="0.125"
label=" Trees"
label_width="140"
layout="topleft"