From b742355130decb1b39d6f95871d4fb575cdd3d65 Mon Sep 17 00:00:00 2001 From: Austin Doupnik <austin@lindenlab.com> Date: Thu, 9 Jul 2009 22:35:39 +0000 Subject: [PATCH] DEV-35167 Reference counted selection objects were being kept around by floaters that were being constructed, but weren't visible. Reviewed by Richard. --- indra/newview/llfloaterinspect.cpp | 3 ++- indra/newview/llfloateropenobject.cpp | 2 +- indra/newview/llfloatertelehub.cpp | 6 ++++-- indra/newview/llfloatertelehub.h | 1 + indra/newview/llviewerwindow.cpp | 8 ++++---- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/indra/newview/llfloaterinspect.cpp b/indra/newview/llfloaterinspect.cpp index 9f8446210e8..972b3b95288 100644 --- a/indra/newview/llfloaterinspect.cpp +++ b/indra/newview/llfloaterinspect.cpp @@ -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() { diff --git a/indra/newview/llfloateropenobject.cpp b/indra/newview/llfloateropenobject.cpp index 09460e41add..ba23a58b372 100644 --- a/indra/newview/llfloateropenobject.cpp +++ b/indra/newview/llfloateropenobject.cpp @@ -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() { diff --git a/indra/newview/llfloatertelehub.cpp b/indra/newview/llfloatertelehub.cpp index 1d2d3b98f24..174350ddf40 100644 --- a/indra/newview/llfloatertelehub.cpp +++ b/indra/newview/llfloatertelehub.cpp @@ -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; diff --git a/indra/newview/llfloatertelehub.h b/indra/newview/llfloatertelehub.h index b639338dfce..86749dcc0b7 100644 --- a/indra/newview/llfloatertelehub.h +++ b/indra/newview/llfloatertelehub.h @@ -49,6 +49,7 @@ class LLFloaterTelehub : public LLFloater virtual void draw(); /*virtual*/ BOOL postBuild(); + void onOpen(const LLSD& key); static BOOL renderBeacons(); static void addBeacons(); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index e690ae5f6fc..1ee58770853 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -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()) { -- GitLab