DEV-35167 Reference counted selection objects were being kept around by floaters that were being constructed, but weren't visible. Reviewed by Richard.

master
Austin Doupnik 2009-07-09 22:35:39 +00:00
parent ee24bbdd48
commit b742355130
5 changed files with 12 additions and 8 deletions

View File

@ -66,7 +66,6 @@ BOOL LLFloaterInspect::postBuild()
// childSetAction("button creator",onClickCreatorProfile, this);
// childSetCommitCallback("object_list", onSelectObject, NULL);
mObjectSelection = LLSelectMgr::getInstance()->getSelection();
refresh();
return TRUE;
@ -120,6 +119,8 @@ void LLFloaterInspect::onOpen(const LLSD& key)
BOOL forcesel = LLSelectMgr::getInstance()->setForceSelection(TRUE);
LLToolMgr::getInstance()->setTransientTool(LLToolCompInspect::getInstance());
LLSelectMgr::getInstance()->setForceSelection(forcesel); // restore previouis value
mObjectSelection = LLSelectMgr::getInstance()->getSelection();
refresh();
}
void LLFloaterInspect::onClickCreatorProfile()
{

View File

@ -74,7 +74,6 @@ LLFloaterOpenObject::~LLFloaterOpenObject()
// virtual
BOOL LLFloaterOpenObject::postBuild()
{
mObjectSelection = LLSelectMgr::getInstance()->getEditSelection();
childSetTextArg("object_name", "[DESC]", std::string("Object") ); // *Note: probably do not want to translate this
mPanelInventory = getChild<LLPanelInventory>("object_contents");
return TRUE;
@ -94,6 +93,7 @@ void LLFloaterOpenObject::onOpen(const LLSD& key)
closeFloater();
return;
}
mObjectSelection = LLSelectMgr::getInstance()->getEditSelection();
}
void LLFloaterOpenObject::refresh()
{

View File

@ -93,8 +93,6 @@ LLFloaterTelehub::LLFloaterTelehub()
gMessageSystem->setHandlerFunc("TelehubInfo", processTelehubInfo);
LLUICtrlFactory::getInstance()->buildFloater(sInstance, "floater_telehub.xml");
mObjectSelection = LLSelectMgr::getInstance()->getEditSelection();
}
BOOL LLFloaterTelehub::postBuild()
{
@ -113,6 +111,10 @@ BOOL LLFloaterTelehub::postBuild()
return TRUE;
}
void LLFloaterTelehub::onOpen(const LLSD& key)
{
mObjectSelection = LLSelectMgr::getInstance()->getEditSelection();
}
LLFloaterTelehub::~LLFloaterTelehub()
{
sInstance = NULL;

View File

@ -49,6 +49,7 @@ public:
virtual void draw();
/*virtual*/ BOOL postBuild();
void onOpen(const LLSD& key);
static BOOL renderBeacons();
static void addBeacons();

View File

@ -2868,10 +2868,10 @@ void LLViewerWindow::updateKeyboardFocus()
}
// last ditch force of edit menu to selection manager
if (LLEditMenuHandler::gEditMenuHandler == NULL && LLSelectMgr::getInstance()->getSelection()->getObjectCount())
{
LLEditMenuHandler::gEditMenuHandler = LLSelectMgr::getInstance();
}
// if (LLEditMenuHandler::gEditMenuHandler == NULL && LLSelectMgr::getInstance()->getSelection()->getObjectCount())
// {
// LLEditMenuHandler::gEditMenuHandler = LLSelectMgr::getInstance();
// }
if (gFloaterView->getCycleMode())
{