diff options
Diffstat (limited to 'indra/llui/lldockablefloater.cpp')
| -rw-r--r-- | indra/llui/lldockablefloater.cpp | 17 | 
1 files changed, 16 insertions, 1 deletions
| diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index bf55239f1b..ca2dc644a4 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -43,12 +43,13 @@ void LLDockableFloater::init(LLDockableFloater* thiz)  	thiz->setCanClose(TRUE);  	thiz->setCanDock(true);  	thiz->setCanMinimize(TRUE); +	thiz->setOverlapsScreenChannel(false); +	thiz->mForceDocking = false;  }  LLDockableFloater::LLDockableFloater(LLDockControl* dockControl,  		const LLSD& key, const Params& params) :  	LLFloater(key, params), mDockControl(dockControl), mUniqueDocking(true) -	, mOverlapsScreenChannel(false)  {  	init(this);  	mUseTongue = true; @@ -75,6 +76,12 @@ LLDockableFloater::~LLDockableFloater()  BOOL LLDockableFloater::postBuild()  { +	// Remember we should force docking when the floater is opened for the first time +	if (mIsDockedStateForcedCallback != NULL && mIsDockedStateForcedCallback()) +	{ +		mForceDocking = true; +	} +  	mDockTongue = LLUI::getUIImage("windows/Flyout_Pointer.png");  	LLFloater::setDocked(true);  	return LLView::postBuild(); @@ -128,6 +135,14 @@ void LLDockableFloater::resetInstance()  void LLDockableFloater::setVisible(BOOL visible)  { +	// Force docking if requested +	if (visible && mForceDocking) +	{ +		setCanDock(true); +		setDocked(true); +		mForceDocking = false; +	} +  	if(visible && isDocked())  	{  		resetInstance(); | 
