summaryrefslogtreecommitdiff
path: root/indra/newview/llfloatersellland.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloatersellland.cpp')
-rw-r--r--indra/newview/llfloatersellland.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp
index a6aa01e83b..fe98c84301 100644
--- a/indra/newview/llfloatersellland.cpp
+++ b/indra/newview/llfloatersellland.cpp
@@ -58,6 +58,7 @@ class LLFloaterSellLandUI
public:
LLFloaterSellLandUI(const LLSD& key);
virtual ~LLFloaterSellLandUI();
+ void onClose();
private:
class SelectionObserver : public LLParcelObserver
@@ -131,6 +132,7 @@ LLFloaterSellLandUI::LLFloaterSellLandUI(const LLSD& key)
{
LLViewerParcelMgr::getInstance()->addObserver(&mParcelSelectionObserver);
// LLUICtrlFactory::getInstance()->buildFloater(sInstance, "floater_sell_land.xml");
+ mCloseSignal.connect(boost::bind(&LLFloaterSellLandUI::onClose, this));
}
LLFloaterSellLandUI::~LLFloaterSellLandUI()
@@ -138,6 +140,13 @@ LLFloaterSellLandUI::~LLFloaterSellLandUI()
LLViewerParcelMgr::getInstance()->removeObserver(&mParcelSelectionObserver);
}
+// Because we are single_instance, we are not destroyed on close.
+void LLFloaterSellLandUI::onClose()
+{
+ // Must release parcel selection to allow land to deselect, see EXT-803
+ mParcelSelection = NULL;
+}
+
void LLFloaterSellLandUI::SelectionObserver::changed()
{
if (LLViewerParcelMgr::getInstance()->selectionEmpty())
@@ -253,10 +262,7 @@ void LLFloaterSellLandUI::refreshUI()
if (!parcelp) return;
LLTextureCtrl* snapshot = getChild<LLTextureCtrl>("info_image");
- if (snapshot)
- {
- snapshot->setImageAssetID(mParcelSnapshot);
- }
+ snapshot->setImageAssetID(mParcelSnapshot);
childSetText("info_parcel", parcelp->getName());
childSetTextArg("info_size", "[AREA]", llformat("%d", mParcelActualArea));