diff options
author | Steven Bennetts <steve@lindenlab.com> | 2009-09-10 03:12:12 +0000 |
---|---|---|
committer | Steven Bennetts <steve@lindenlab.com> | 2009-09-10 03:12:12 +0000 |
commit | ccb1d2b1e43369803cf9ab1ffc7deefbac2db8fc (patch) | |
tree | 57b085da51db0f63ab249926102f8ebbca8da1ee /indra/llui/lldockcontrol.cpp | |
parent | 44f294d484185ef3cb9f51e5cba6a3ee269b96dc (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/lldockcontrol.cpp')
-rw-r--r-- | indra/llui/lldockcontrol.cpp | 10 |
1 files changed, 7 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; } } |