From ccb1d2b1e43369803cf9ab1ffc7deefbac2db8fc Mon Sep 17 00:00:00 2001 From: Steven Bennetts Date: Thu, 10 Sep 2009 03:12:12 +0000 Subject: 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 --- indra/llui/lldockcontrol.cpp | 10 +++++++--- indra/llui/lldockcontrol.h | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'indra/llui') 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; -- cgit v1.2.3