merge
commit
842e5111ae
|
|
@ -451,6 +451,14 @@ void LLFloater::enableResizeCtrls(bool enable)
|
|||
}
|
||||
}
|
||||
|
||||
void LLFloater::destroy()
|
||||
{
|
||||
// LLFloaterReg should be synchronized with "dead" floater to avoid returning dead instance before
|
||||
// it was deleted via LLMortician::updateClass(). See EXT-8458.
|
||||
LLFloaterReg::removeInstance(mInstanceName, mKey);
|
||||
die();
|
||||
}
|
||||
|
||||
// virtual
|
||||
LLFloater::~LLFloater()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ protected:
|
|||
BOOL getAutoFocus() const { return mAutoFocus; }
|
||||
LLDragHandle* getDragHandle() const { return mDragHandle; }
|
||||
|
||||
void destroy() { die(); } // Don't call this directly. You probably want to call closeFloater()
|
||||
void destroy(); // Don't call this directly. You probably want to call closeFloater()
|
||||
|
||||
virtual void onClickCloseBtn();
|
||||
|
||||
|
|
|
|||
|
|
@ -550,9 +550,10 @@ namespace action_give_inventory
|
|||
}
|
||||
|
||||
LLInventoryPanel* active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE);
|
||||
if (NULL == active_panel)
|
||||
if (!active_panel)
|
||||
{
|
||||
return;
|
||||
active_panel = get_outfit_editor_inventory_panel();
|
||||
if (!active_panel) return;
|
||||
}
|
||||
|
||||
const uuid_set_t inventory_selected_uuids = active_panel->getRootFolder()->getSelectionList();
|
||||
|
|
|
|||
|
|
@ -111,6 +111,12 @@ public:
|
|||
return pInstance;
|
||||
}
|
||||
|
||||
~LLChatHistoryHeader()
|
||||
{
|
||||
// Detach the info button so that it doesn't get destroyed (EXT-8463).
|
||||
hideInfoCtrl();
|
||||
}
|
||||
|
||||
BOOL handleMouseUp(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
return LLPanel::handleMouseUp(x,y,mask);
|
||||
|
|
@ -382,8 +388,18 @@ protected:
|
|||
|
||||
if (!sInfoCtrl)
|
||||
{
|
||||
// *TODO: Delete the button at exit.
|
||||
sInfoCtrl = LLUICtrlFactory::createFromFile<LLUICtrl>("inspector_info_ctrl.xml", NULL, LLPanel::child_registry_t::instance());
|
||||
sInfoCtrl->setCommitCallback(boost::bind(&LLChatHistoryHeader::onClickInfoCtrl, sInfoCtrl));
|
||||
if (sInfoCtrl)
|
||||
{
|
||||
sInfoCtrl->setCommitCallback(boost::bind(&LLChatHistoryHeader::onClickInfoCtrl, sInfoCtrl));
|
||||
}
|
||||
}
|
||||
|
||||
if (!sInfoCtrl)
|
||||
{
|
||||
llassert(sInfoCtrl != NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
LLTextBase* name = getChild<LLTextBase>("user_name");
|
||||
|
|
|
|||
|
|
@ -83,6 +83,16 @@ LLFloaterMove::LLFloaterMove(const LLSD& key)
|
|||
{
|
||||
}
|
||||
|
||||
LLFloaterMove::~LLFloaterMove()
|
||||
{
|
||||
// Ensure LLPanelStandStopFlying panel is not among floater's children. See EXT-8458.
|
||||
setVisible(FALSE);
|
||||
|
||||
// Otherwise it can be destroyed and static pointer in LLPanelStandStopFlying::getInstance() will become invalid.
|
||||
// Such situation was possible when LLFloaterReg returns "dead" instance of floater.
|
||||
// Should not happen after LLFloater::destroy was modified to remove "dead" instances from LLFloaterReg.
|
||||
}
|
||||
|
||||
// virtual
|
||||
BOOL LLFloaterMove::postBuild()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ class LLFloaterMove
|
|||
|
||||
private:
|
||||
LLFloaterMove(const LLSD& key);
|
||||
~LLFloaterMove() {}
|
||||
~LLFloaterMove();
|
||||
public:
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
|
|
|
|||
Loading…
Reference in New Issue