summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorSteven Bennetts <steve@lindenlab.com>2007-02-05 20:20:42 +0000
committerSteven Bennetts <steve@lindenlab.com>2007-02-05 20:20:42 +0000
commitd1582a5105f01181535fb859c530e45c2efca071 (patch)
treef8c6939e2c67d64d7be0e2488af296b42f13800d /indra/newview
parent57be416ab7c9d93196231fb55de8ba563f3b29eb (diff)
merge -r 57111:57464 maintenance.
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/licenses-linux.txt33
-rw-r--r--indra/newview/lldrawpoolalpha.cpp32
-rw-r--r--indra/newview/llfloaterregioninfo.cpp16
-rw-r--r--indra/newview/llfolderview.cpp2
-rw-r--r--indra/newview/llnetmap.cpp2
-rw-r--r--indra/newview/llpanelavatar.cpp15
-rw-r--r--indra/newview/llpanelavatar.h2
-rw-r--r--indra/newview/llpanelpermissions.cpp5
-rw-r--r--indra/newview/llpreviewnotecard.cpp8
-rw-r--r--indra/newview/llpreviewscript.cpp13
-rw-r--r--indra/newview/llpreviewscript.h5
-rw-r--r--indra/newview/llstartup.cpp10
-rw-r--r--indra/newview/lltooldraganddrop.cpp3
-rw-r--r--indra/newview/lltracker.cpp2
-rw-r--r--indra/newview/llviewercontrol.cpp16
-rw-r--r--indra/newview/llviewercontrol.h1
-rw-r--r--indra/newview/llviewermenu.cpp24
-rw-r--r--indra/newview/llviewermenu.h1
-rw-r--r--indra/newview/llviewerwindow.cpp20
-rw-r--r--indra/newview/pipeline.cpp3
-rw-r--r--indra/newview/pipeline.h1
21 files changed, 154 insertions, 60 deletions
diff --git a/indra/newview/licenses-linux.txt b/indra/newview/licenses-linux.txt
index f7ccf27a12..57df413ae0 100644
--- a/indra/newview/licenses-linux.txt
+++ b/indra/newview/licenses-linux.txt
@@ -404,6 +404,39 @@ Subject to the following 3 conditions, Epinions, Inc. permits you, free of charg
3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING NEGLIGENCE), EVEN IF EPINIONS, INC. IS AWARE OF THE POSSIBILITY OF SUCH DAMAGES.
+===============
+libuuid License
+===============
+
+Copyright (C) 1999, 2000, 2003, 2004 by Theodore Ts'o
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, and the entire permission notice in its entirety,
+ including the disclaimer of warranties.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+
============
zlib License
============
diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp
index d34695a7be..8c520f6638 100644
--- a/indra/newview/lldrawpoolalpha.cpp
+++ b/indra/newview/lldrawpoolalpha.cpp
@@ -443,7 +443,14 @@ void LLDrawPoolAlpha::renderForSelect()
LLGLSObjectSelectAlpha gls_alpha;
glBlendFunc(GL_ONE, GL_ZERO);
- glAlphaFunc(gPickTransparent ? GL_GEQUAL : GL_GREATER, 0.f);
+ if (gPickTransparent)
+ {
+ glAlphaFunc(GL_GEQUAL, 0.f);
+ }
+ else
+ {
+ glAlphaFunc(GL_GEQUAL, gPickAlphaThreshold);
+ }
bindGLVertexPointer();
bindGLTexCoordPointer();
@@ -464,27 +471,10 @@ void LLDrawPoolAlpha::renderForSelect()
LLDynamicArray<LLFace*>* distance_bins;
distance_bins = mDistanceBins;
- S32 j;
- S32 num_bins_no_alpha_test = (gPickAlphaThreshold != 0.f) ?
- (NUM_ALPHA_BINS - llmax(2, (S32)(ALPHA_FALLOFF_START_DISTANCE * mInvBinSize))) :
- NUM_ALPHA_BINS;
-
S32 i;
- for (i = 0; i < num_bins_no_alpha_test; i++)
- {
- S32 distance_bin_size = distance_bins[i].count();
- for (j = 0; j < distance_bin_size; j++)
- {
- const LLFace &face = *distance_bins[i][j];
- if (face.getDrawable() && !face.getDrawable()->isDead() && (face.getViewerObject()->mGLName))
- {
- face.bindTexture();
- face.renderForSelect();
- }
- }
- }
+ S32 j;
- for (i = num_bins_no_alpha_test; i < NUM_ALPHA_BINS; i++)
+ for (i = 0; i < NUM_ALPHA_BINS; i++)
{
S32 distance_bin_size = distance_bins[i].count();
if (distance_bin_size)
@@ -493,8 +483,6 @@ void LLDrawPoolAlpha::renderForSelect()
{
const LLFace &face = *distance_bins[i][j];
- glAlphaFunc(GL_GEQUAL, face.mAlphaFade * gPickAlphaTargetThreshold);
-
if (face.getDrawable() && !face.getDrawable()->isDead() && (face.getViewerObject()->mGLName))
{
face.bindTexture();
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 1ad724024b..55b3ee185b 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -305,12 +305,20 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)
panel->childSetValue("restrict_pushobject", (region_flags & REGION_FLAGS_RESTRICT_PUSHOBJECT) ? TRUE : FALSE );
panel->childSetValue("allow_land_resell_check", (region_flags & REGION_FLAGS_BLOCK_LAND_RESELL) ? FALSE : TRUE );
panel->childSetValue("allow_parcel_changes_check", (region_flags & REGION_FLAGS_ALLOW_PARCEL_CHANGES) ? TRUE : FALSE );
-
panel->childSetValue("agent_limit_spin", LLSD((F32)agent_limit) );
panel->childSetValue("object_bonus_spin", LLSD(object_bonus_factor) );
-
panel->childSetValue("access_combo", LLSD(LLViewerRegion::accessToString(sim_access)) );
+
+ // detect teen grid for maturity
+ LLViewerRegion* region = gAgent.getRegion();
+
+ U32 parent_estate_id;
+ msg->getU32("RegionInfo", "ParentEstateID", parent_estate_id);
+ BOOL teen_grid = (parent_estate_id == 5); // *TODO add field to estate table and test that
+ panel->childSetEnabled("access_combo", gAgent.isGodlike() || (region && region->canManageEstate() && !teen_grid));
+
+
// DEBUG PANEL
panel = LLUICtrlFactory::getPanelByName(tab, "Debug");
if(!panel) return;
@@ -330,7 +338,6 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)
panel->childSetValue("terrain_lower_spin", LLSD(terrain_lower_limit));
panel->childSetValue("use_estate_sun_check", LLSD(use_estate_sun));
- LLViewerRegion* region = gAgent.getRegion();
BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate());
panel->childSetValue("fixed_sun_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SUN_FIXED)));
panel->childSetEnabled("fixed_sun_check", allow_modify && !use_estate_sun);
@@ -506,7 +513,8 @@ bool LLPanelRegionGeneralInfo::refreshFromRegion(LLViewerRegion* region)
setCtrlsEnabled(allow_modify);
childDisable("apply_btn");
childSetEnabled("access_text", allow_modify);
- childSetEnabled("access_combo", allow_modify);
+ // childSetEnabled("access_combo", allow_modify);
+ // now set in processRegionInfo for teen grid detection
childSetEnabled("kick_btn", allow_modify);
childSetEnabled("kick_all_btn", allow_modify);
childSetEnabled("im_btn", allow_modify);
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index b3585fdfaf..39cf48c5c9 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -4059,7 +4059,7 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask )
}
menu->arrange();
- menu->updateParent(gMenuHolder);
+ menu->updateParent(LLMenuGL::sMenuContainer);
LLMenuGL::showPopup(this, menu, x, y);
}
else
diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp
index 26f4a2fb5b..b03996d460 100644
--- a/indra/newview/llnetmap.cpp
+++ b/indra/newview/llnetmap.cpp
@@ -772,7 +772,7 @@ BOOL LLNetMap::handleRightMouseDown(S32 x, S32 y, MASK mask)
if (menu)
{
menu->buildDrawLabels();
- menu->updateParent(gMenuHolder);
+ menu->updateParent(LLMenuGL::sMenuContainer);
LLMenuGL::showPopup(this, menu, x, y);
}
return TRUE;
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index dda28020cd..50586b3649 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -359,6 +359,20 @@ void LLPanelAvatarSecondLife::onClickPublishHelp(void *)
gViewerWindow->alertXml("ClickPublishHelpAvatar");
}
+// static
+void LLPanelAvatarSecondLife::onClickPartnerHelp(void *)
+{
+ gViewerWindow->alertXml("ClickPartnerHelpAvatar", onClickPartnerHelpLoadURL, (void*) NULL);
+}
+
+// static
+void LLPanelAvatarSecondLife::onClickPartnerHelpLoadURL(S32 option, void* userdata)
+{
+ if (option == 0)
+ LLWeb::loadURL("http://secondlife.com/partner");
+}
+
+
//-----------------------------------------------------------------------------
// LLPanelAvatarFirstLife()
//-----------------------------------------------------------------------------
@@ -388,6 +402,7 @@ BOOL LLPanelAvatarSecondLife::postBuild(void)
{
childSetEnabled("born", FALSE);
childSetEnabled("partner_edit", FALSE);
+ childSetAction("partner_help",onClickPartnerHelp,this);
childSetAction("?",onClickPublishHelp,this);
BOOL own_avatar = (mPanelAvatar->getAvatarID() == gAgent.getID() );
diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h
index 713750ad06..1f4ed7e829 100644
--- a/indra/newview/llpanelavatar.h
+++ b/indra/newview/llpanelavatar.h
@@ -69,6 +69,8 @@ public:
static void onClickFriends( void *userdata);
static void onDoubleClickGroup(void* userdata);
static void onClickPublishHelp(void *userdata);
+ static void onClickPartnerHelp(void *userdata);
+ static void onClickPartnerHelpLoadURL(S32 option, void* userdata);
// Clear out the controls anticipating new network data.
void clearControls();
diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp
index adcf17febf..332d22ade6 100644
--- a/indra/newview/llpanelpermissions.cpp
+++ b/indra/newview/llpanelpermissions.cpp
@@ -710,6 +710,11 @@ void LLPanelPermissions::refresh()
{
RadioSaleType->setSelectedIndex((S32)sale_type - 1);
}
+ else
+ {
+ // default option is sell copy, determined to be safest
+ RadioSaleType->setSelectedIndex((S32)LLSaleInfo::FS_COPY - 1);
+ }
if (is_for_sale)
{
diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp
index a37ed692b1..6b8cc626ee 100644
--- a/indra/newview/llpreviewnotecard.cpp
+++ b/indra/newview/llpreviewnotecard.cpp
@@ -91,8 +91,12 @@ LLPreviewNotecard::LLPreviewNotecard(const std::string& name,
}
}
- reshape(curRect.getWidth(), curRect.getHeight(), TRUE);
- setRect(curRect);
+ // only assert shape if not hosted in a multifloater
+ if (!getHost())
+ {
+ reshape(curRect.getWidth(), curRect.getHeight(), TRUE);
+ setRect(curRect);
+ }
childSetVisible("lock", FALSE);
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index f7e063b412..f6b9f0e018 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -1268,7 +1268,7 @@ LLLiveLSLEditor::LLLiveLSLEditor(const std::string& name,
const std::string& title,
const LLUUID& object_id,
const LLUUID& item_id) :
- LLFloater(name, rect, title, TRUE, SCRIPT_MIN_WIDTH, SCRIPT_MIN_HEIGHT),
+ LLPreview(name, rect, title, item_id, object_id, TRUE, SCRIPT_MIN_WIDTH, SCRIPT_MIN_HEIGHT),
mObjectID(object_id),
mItemID(item_id),
mScriptEd(NULL),
@@ -1327,6 +1327,11 @@ LLLiveLSLEditor::~LLLiveLSLEditor()
LLLiveLSLEditor::sInstances.removeData(mItemID ^ mObjectID);
}
+// this is called via LLPreview::loadAsset() virtual method
+void LLLiveLSLEditor::loadAsset()
+{
+ loadAsset(FALSE);
+}
void LLLiveLSLEditor::loadAsset(BOOL is_new)
{
@@ -1358,6 +1363,7 @@ void LLLiveLSLEditor::loadAsset(BOOL is_new)
mScriptEd->mEditor->setText("You are not allowed to view this script.");
mScriptEd->mEditor->makePristine();
mScriptEd->mEditor->setEnabled(FALSE);
+ mAssetStatus = PREVIEW_ASSET_LOADED;
}
else if(mItem.notNull())
{
@@ -1381,11 +1387,13 @@ void LLLiveLSLEditor::loadAsset(BOOL is_new)
msg->addUUIDFast(_PREHASH_ItemID, mItemID);
msg->sendReliable(object->getRegion()->getHost());
mAskedForRunningInfo = TRUE;
+ mAssetStatus = PREVIEW_ASSET_LOADING;
}
else
{
mScriptEd->mEditor->setText("");
mScriptEd->mEditor->makePristine();
+ mAssetStatus = PREVIEW_ASSET_LOADED;
}
if(item
@@ -1429,6 +1437,7 @@ void LLLiveLSLEditor::loadAsset(BOOL is_new)
LLSaleInfo::DEFAULT,
LLInventoryItem::II_FLAGS_NONE,
time_corrected());
+ mAssetStatus = PREVIEW_ASSET_LOADED;
}
}
@@ -1448,6 +1457,7 @@ void LLLiveLSLEditor::onLoadComplete(LLVFS *vfs, const LLUUID& asset_id,
{
instance = LLLiveLSLEditor::sInstances[*xored_id];
instance->loadScriptText(vfs, asset_id, type);
+ instance->mAssetStatus = PREVIEW_ASSET_LOADED;
}
else
{
@@ -1469,6 +1479,7 @@ void LLLiveLSLEditor::onLoadComplete(LLVFS *vfs, const LLUUID& asset_id,
{
LLNotifyBox::showXml("UnableToLoadScript");
}
+ instance->mAssetStatus = PREVIEW_ASSET_ERROR;
}
}
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index ead9d8e334..9b2beb9ce9 100644
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -147,7 +147,7 @@ protected:
// Used to view and edit an LSL that is attached to an object.
-class LLLiveLSLEditor : public LLFloater
+class LLLiveLSLEditor : public LLPreview
{
public:
LLLiveLSLEditor(const std::string& name, const LLRect& rect,
@@ -166,7 +166,8 @@ protected:
virtual void draw();
virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
- void loadAsset(BOOL is_new = FALSE);
+ virtual void loadAsset();
+ void loadAsset(BOOL is_new);
void saveIfNeeded();
static void onLoad(void* userdata);
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 5e7b3377d9..cf80a72282 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -377,9 +377,17 @@ BOOL idle_startup()
{
fclose(found_template);
+ U32 port = gAgent.mViewerPort;
+
+ if ((NET_USE_OS_ASSIGNED_PORT == port) && // if nothing specified on command line (-port)
+ (gSavedSettings.getBOOL("ConnectionPortEnabled")))
+ {
+ port = gSavedSettings.getU32("ConnectionPort");
+ }
+
if(!start_messaging_system(
message_template_path,
- gAgent.mViewerPort,
+ port,
LL_VERSION_MAJOR,
LL_VERSION_MINOR,
LL_VERSION_PATCH,
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index 7e01b18530..ea1284117d 100644
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -1461,6 +1461,9 @@ void LLToolDragAndDrop::dropObject(LLViewerObject* raycast_target,
// since it's coming from the library or trash, we want to not
// 'take' it back to the same place.
item->setParent(LLUUID::null);
+ // *TODO this code isn't working - the parent (FolderID) is still
+ // set when the object is "taken". so code on the "take" side is
+ // checking for trash and library as well (llviewermenu.cpp)
}
if (mSource == SOURCE_NOTECARD)
{
diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp
index d3d7fd528d..42ef25ac4e 100644
--- a/indra/newview/lltracker.cpp
+++ b/indra/newview/lltracker.cpp
@@ -245,7 +245,7 @@ void LLTracker::render3D()
else
{
const LLRelationship* buddy = av_tracker.getBuddyInfo(avatar_id);
- if(buddy && !buddy->isOnline())
+ if(buddy && !buddy->isOnline() && !gAgent.isGodlike())
{
stop_tracking = TRUE;
}
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 6069945725..99cae9979c 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -198,6 +198,20 @@ void LLFloaterSettingsDebug::onCommitSettings(LLUICtrl* ctrl, void* user_data)
}
}
+// static
+void LLFloaterSettingsDebug::onClickDefault(void* user_data)
+{
+ LLFloaterSettingsDebug* floaterp = (LLFloaterSettingsDebug*)user_data;
+ LLComboBox* settings_combo = (LLComboBox*)floaterp->getChildByName("settings_combo");
+ LLControlBase* controlp = (LLControlBase*)settings_combo->getCurrentUserdata();
+
+ if (controlp)
+ {
+ controlp->resetToDefault();
+ floaterp->updateControl(controlp);
+ }
+}
+
// we've switched controls, or doing per-frame update, so update spinners, etc.
void LLFloaterSettingsDebug::updateControl(LLControlBase* controlp)
{
@@ -421,6 +435,8 @@ void LLFloaterSettingsDebug::updateControl(LLControlBase* controlp)
if (!spinner4->hasFocus())
{
spinner4->setPrecision(3);
+ spinner4->setMinValue(0.0);
+ spinner4->setMaxValue(1.f);
spinner4->setValue(clr.mV[VALPHA]);
}
break;
diff --git a/indra/newview/llviewercontrol.h b/indra/newview/llviewercontrol.h
index e86f961b3a..55d92c2d7a 100644
--- a/indra/newview/llviewercontrol.h
+++ b/indra/newview/llviewercontrol.h
@@ -27,6 +27,7 @@ public:
static void show(void*);
static void onSettingSelect(LLUICtrl* ctrl, void* user_data);
static void onCommitSettings(LLUICtrl* ctrl, void* user_data);
+ static void onClickDefault(void* user_data);
protected:
static LLFloaterSettingsDebug* sInstance;
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index ef7027876a..7ef1fd82c6 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -44,6 +44,7 @@
// newview includes
#include "llagent.h"
+
#include "llagentpilot.h"
#include "llbox.h"
#include "llcallingcard.h"
@@ -546,10 +547,10 @@ void init_menus()
// Main menu bar
//
gMenuHolder = new LLViewerMenuHolderGL();
- gMenuHolder->setRect(LLRect(0, top - MENU_BAR_HEIGHT, width, STATUS_BAR_HEIGHT));
+ gMenuHolder->setRect(LLRect(0, top, width, 0));
gMenuHolder->setFollowsAll();
- LLMenuGL::sDefaultMenuContainer = gMenuHolder;
+ LLMenuGL::sMenuContainer = gMenuHolder;
// Initialize actions
initialize_menu_actions();
@@ -583,12 +584,12 @@ void init_menus()
menu = new LLMenuGL(CLIENT_MENU_NAME);
init_client_menu(menu);
gMenuBarView->appendMenu( menu );
- menu->updateParent(gMenuHolder);
+ menu->updateParent(LLMenuGL::sMenuContainer);
menu = new LLMenuGL(SERVER_MENU_NAME);
init_server_menu(menu);
gMenuBarView->appendMenu( menu );
- menu->updateParent(gMenuHolder);
+ menu->updateParent(LLMenuGL::sMenuContainer);
gMenuBarView->createJumpKeys();
@@ -4145,7 +4146,7 @@ void handle_take()
if(category_id.notNull())
{
// there is an unambiguous destination. See if this agent has
- // such a location and it is not in the trash.
+ // such a location and it is not in the trash or library
if(!gInventory.getCategory(category_id))
{
// nope, set to NULL.
@@ -4153,12 +4154,20 @@ void handle_take()
}
if(category_id.notNull())
{
+ // check trash
LLUUID trash;
trash = gInventory.findCategoryUUIDForType(LLAssetType::AT_TRASH);
if(category_id == trash || gInventory.isObjectDescendentOf(category_id, trash))
{
category_id.setNull();
}
+
+ // check library
+ if(gInventory.isObjectDescendentOf(category_id, gInventoryLibraryRoot))
+ {
+ category_id.setNull();
+ }
+
}
}
if(category_id.isNull())
@@ -8277,6 +8286,11 @@ BOOL LLViewerMenuHolderGL::hideMenus()
return handled;
}
+const LLRect LLViewerMenuHolderGL::getMenuRect() const
+{
+ return LLRect(0, mRect.getHeight() - MENU_BAR_HEIGHT, mRect.getWidth(), STATUS_BAR_HEIGHT);
+}
+
void handle_save_to_xml(void*)
{
LLFloater* frontmost = gFloaterView->getFrontmost();
diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h
index 37a7f0fa13..182190ccdf 100644
--- a/indra/newview/llviewermenu.h
+++ b/indra/newview/llviewermenu.h
@@ -129,6 +129,7 @@ public:
LLViewerMenuHolderGL() : LLMenuHolderGL() {};
virtual BOOL hideMenus();
+ virtual const LLRect getMenuRect() const;
//virtual BOOL handleKey(KEY key, MASK mask, BOOL called_from_parent);
};
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 0773998023..871dfcbdea 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1615,6 +1615,9 @@ void LLViewerWindow::initWorldUI()
gStatusBar->translate(0, root_rect.getHeight() - gStatusBar->getRect().getHeight());
gViewerWindow->getRootView()->addChild(gStatusBar);
+
+ // menu holder appears on top to get first pass at all mouse events
+ gViewerWindow->getRootView()->sendChildToFront(gMenuHolder);
}
@@ -2944,8 +2947,6 @@ void LLViewerWindow::hitObjectOrLandGlobalAsync(S32 x, S32 y_from_bot, MASK mask
S32 scaled_x = llround((F32)x * mDisplayScale.mV[VX]);
S32 scaled_y = llround((F32)y_from_bot * mDisplayScale.mV[VY]);
- F32 delta_time = gAlphaFadeTimer.getElapsedTimeAndResetF32();
-
BOOL in_build_mode = gFloaterTools && gFloaterTools->getVisible();
if (in_build_mode || LLDrawPoolAlpha::sShowDebugAlpha)
{
@@ -2955,17 +2956,6 @@ void LLViewerWindow::hitObjectOrLandGlobalAsync(S32 x, S32 y_from_bot, MASK mask
}
gPickTransparent = pick_transparent;
- if (gPickTransparent)
- {
- gPickAlphaTargetThreshold = 0.f;
- gPickAlphaThreshold = llmax(gPickAlphaTargetThreshold, gPickAlphaThreshold - (delta_time * 0.7f));
- }
- else
- {
- gPickAlphaTargetThreshold = 1.f;
- gPickAlphaThreshold = llmin(gPickAlphaTargetThreshold, gPickAlphaThreshold + (delta_time * 0.7f));
- }
-
gUseGLPick = FALSE;
mPickCallback = callback;
@@ -4014,7 +4004,6 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
setupViewport();
BOOL first_time_through = (subimage_x + subimage_y == 0);
gPickTransparent = FALSE;
- gPickAlphaThreshold = 0.1f;
gObjectList.renderObjectsForSelect(*gCamera, FALSE, !first_time_through);
}
else
@@ -4368,8 +4357,6 @@ void LLViewerWindow::stopGL(BOOL save_state)
LLDynamicTexture::destroyGL();
stop_glerror();
- if(gParcelMgr) gParcelMgr->destroyGL();
-
gPipeline.destroyGL();
gCone.cleanupGL();
@@ -4405,7 +4392,6 @@ void LLViewerWindow::restoreGL(const LLString& progress_message)
gPipeline.setUseAGP(gSavedSettings.getBOOL("RenderUseAGP"));
LLDynamicTexture::restoreGL();
LLVOAvatar::restoreGL();
- if (gParcelMgr) gParcelMgr->restoreGL();
if (gFloaterCustomize && gFloaterCustomize->getVisible())
{
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 25aea4c4b3..0962d3e479 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -107,8 +107,7 @@ S32 gTrivialAccepts = 0;
BOOL gRenderForSelect = FALSE;
BOOL gUsePickAlpha = TRUE;
-F32 gPickAlphaThreshold = 0.f;
-F32 gPickAlphaTargetThreshold = 0.f;
+F32 gPickAlphaThreshold = 0.2f;
//glsl parameter tables
const char* LLPipeline::sReservedAttribs[] =
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 4dada886cb..f4144b6afa 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -653,7 +653,6 @@ void render_bbox(const LLVector3 &min, const LLVector3 &max);
extern LLPipeline gPipeline;
extern BOOL gRenderForSelect;
extern F32 gPickAlphaThreshold;
-extern F32 gPickAlphaTargetThreshold;
extern BOOL gUsePickAlpha;
#endif