diff options
Diffstat (limited to 'indra/newview/llfloatersellland.cpp')
-rw-r--r-- | indra/newview/llfloatersellland.cpp | 14 |
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)); |