summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorSteven Bennetts <steve@lindenlab.com>2009-09-10 03:12:12 +0000
committerSteven Bennetts <steve@lindenlab.com>2009-09-10 03:12:12 +0000
commitccb1d2b1e43369803cf9ab1ffc7deefbac2db8fc (patch)
tree57b085da51db0f63ab249926102f8ebbca8da1ee /indra/llui
parent44f294d484185ef3cb9f51e5cba6a3ee269b96dc (diff)
merge -r 1609-1612 https://svn.aws.productengine.com/secondlife/pe/stable-2 -> viewer-2.0.0-3
Fixes: EXT-825 EXT-893 EXT-889 EXT-88
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/lldockcontrol.cpp10
-rw-r--r--indra/llui/lldockcontrol.h1
2 files changed, 8 insertions, 3 deletions
diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp
index bec7f04cc0..e119d387ce 100644
--- a/indra/llui/lldockcontrol.cpp
+++ b/indra/llui/lldockcontrol.cpp
@@ -65,11 +65,14 @@ void LLDockControl::repositionDockable()
void LLDockControl::calculateDockablePosition()
{
LLRect dockRect = mDockWidget->calcScreenRect();
- if (mPrevDockRect != dockRect || mRecalculateDocablePosition)
+ LLRect rootRect = mDockableFloater->getRootView()->getRect();
+
+ // recalculate dockable position if dock position changed
+ // or root view rect changed or recalculation is forced
+ if (mPrevDockRect != dockRect || mRootRect != rootRect
+ || mRecalculateDocablePosition)
{
LLRect dockableRect = mDockableFloater->calcScreenRect();
- LLRect rootRect = mDockableFloater->getRootView()->getRect();
-
S32 x = 0;
S32 y = 0;
switch (mDockAt)
@@ -100,6 +103,7 @@ void LLDockControl::calculateDockablePosition()
mDockableFloater->screenPointToLocal(mDockTongueX, mDockTongueY,
&mDockTongueX, &mDockTongueY);
mPrevDockRect = dockRect;
+ mRootRect = rootRect;
mRecalculateDocablePosition = false;
}
}
diff --git a/indra/llui/lldockcontrol.h b/indra/llui/lldockcontrol.h
index 0e1f4c8e64..ae4e53ddc9 100644
--- a/indra/llui/lldockcontrol.h
+++ b/indra/llui/lldockcontrol.h
@@ -72,6 +72,7 @@ private:
DocAt mDockAt;
LLView* mDockWidget;
LLRect mPrevDockRect;
+ LLRect mRootRect;
LLFloater* mDockableFloater;
LLUIImagePtr mDockTongue;
S32 mDockTongueX;