diff options
| author | Leyla Farazha <leyla@lindenlab.com> | 2011-10-27 16:16:57 -0700 | 
|---|---|---|
| committer | Leyla Farazha <leyla@lindenlab.com> | 2011-10-27 16:16:57 -0700 | 
| commit | a09df4f840fc841870da76e904efec51d3e304b4 (patch) | |
| tree | 12b434f44c4088865d9449a52c1c7648d5adacd4 /indra/llui | |
| parent | 988278d236d789f490eed24a662a6ffe2be6455a (diff) | |
| parent | ad4ae99c30f1293bf8266c1f53ae62161bcb68bb (diff) | |
merge
Diffstat (limited to 'indra/llui')
| -rw-r--r-- | indra/llui/lldockcontrol.cpp | 19 | ||||
| -rw-r--r-- | indra/llui/lldockcontrol.h | 3 | 
2 files changed, 14 insertions, 8 deletions
| diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp index 8cb2e57b98..af39e41fa6 100644 --- a/indra/llui/lldockcontrol.cpp +++ b/indra/llui/lldockcontrol.cpp @@ -100,12 +100,16 @@ void LLDockControl::repositionDockable()  	if (!mDockWidget) return;  	LLRect dockRect = mDockWidget->calcScreenRect();  	LLRect rootRect; +	LLRect floater_rect = mDockableFloater->calcScreenRect();  	mGetAllowedRectCallback(rootRect); -	// recalculate dockable position if dock position changed, dock visibility changed, -	// root view rect changed or recalculation is forced -	if (mPrevDockRect != dockRect  || mDockWidgetVisible != isDockVisible() -			|| mRootRect != rootRect || mRecalculateDocablePosition) +	// recalculate dockable position if: +	if (mPrevDockRect != dockRect					//dock position   changed +		|| mDockWidgetVisible != isDockVisible()	//dock visibility changed +		|| mRootRect != rootRect					//root view rect  changed +		|| mFloaterRect != floater_rect				//floater rect    changed +		|| mRecalculateDockablePosition				//recalculation is forced +	)  	{  		// undock dockable and off() if dock not visible  		if (!isDockVisible()) @@ -136,7 +140,8 @@ void LLDockControl::repositionDockable()  		mPrevDockRect = dockRect;  		mRootRect = rootRect; -		mRecalculateDocablePosition = false; +		mFloaterRect = floater_rect; +		mRecalculateDockablePosition = false;  		mDockWidgetVisible = isDockVisible();  	}  } @@ -341,7 +346,7 @@ void LLDockControl::on()  	 if (isDockVisible())  	{  		mEnabled = true; -		mRecalculateDocablePosition = true; +		mRecalculateDockablePosition = true;  	}  } @@ -352,7 +357,7 @@ void LLDockControl::off()  void LLDockControl::forceRecalculatePosition()  { -	mRecalculateDocablePosition = true; +	mRecalculateDockablePosition = true;  }  void LLDockControl::drawToungue() diff --git a/indra/llui/lldockcontrol.h b/indra/llui/lldockcontrol.h index 463223fafd..c9602011f6 100644 --- a/indra/llui/lldockcontrol.h +++ b/indra/llui/lldockcontrol.h @@ -80,12 +80,13 @@ private:  private:  	get_allowed_rect_callback_t mGetAllowedRectCallback;  	bool mEnabled; -	bool mRecalculateDocablePosition; +	bool mRecalculateDockablePosition;  	bool mDockWidgetVisible;  	DocAt mDockAt;  	LLView* mDockWidget;  	LLRect mPrevDockRect;  	LLRect mRootRect; +	LLRect mFloaterRect;  	LLFloater* mDockableFloater;  	LLUIImagePtr mDockTongue;  	S32 mDockTongueX; | 
