diff options
author | Steven Bennetts <steve@lindenlab.com> | 2009-10-07 07:09:34 +0000 |
---|---|---|
committer | Steven Bennetts <steve@lindenlab.com> | 2009-10-07 07:09:34 +0000 |
commit | ae0827d387dc1e4d0f8a749cab36138f8ac174a0 (patch) | |
tree | 35c9d392f91db7a37f709773ab3d065c41538213 /indra/llui/lldockcontrol.cpp | |
parent | cec9edea1e09e9bae2949b61770a9e4016670427 (diff) |
merge https://svn.aws.productengine.com/secondlife/export-from-ll/viewer-2-0@1908 https://svn.aws.productengine.com/secondlife/pe/stable-2@1917 -> viewer-2.0.0-3
* Bugs: EXT-1257 EXT-1299 EXT-1149 EXT-1117 EXT-1134
* New Dev: EXT-721
Diffstat (limited to 'indra/llui/lldockcontrol.cpp')
-rw-r--r-- | indra/llui/lldockcontrol.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp index 146c7a969a..cdcd823b1c 100644 --- a/indra/llui/lldockcontrol.cpp +++ b/indra/llui/lldockcontrol.cpp @@ -33,6 +33,7 @@ #include "linden_common.h" #include "lldockcontrol.h" +#include "lldockablefloater.h" LLDockControl::LLDockControl(LLView* dockWidget, LLFloater* dockableFloater, const LLUIImagePtr& dockTongue, DocAt dockAt, get_allowed_rect_callback_t get_allowed_rect_callback) : @@ -91,8 +92,8 @@ void LLDockControl::repositionDockable() // recalculate dockable position if dock position changed, dock visibility changed, // root view rect changed or recalculation is forced - if (mEnabled && (mPrevDockRect != dockRect || prev_visibility != mDockWidget->getVisible() - || mRootRect != rootRect || mRecalculateDocablePosition)) + if (mPrevDockRect != dockRect || prev_visibility != mDockWidget->getVisible() + || mRootRect != rootRect || mRecalculateDocablePosition) { // undock dockable and off() if dock not visible if (!isDockVisible()) @@ -100,10 +101,25 @@ void LLDockControl::repositionDockable() mDockableFloater->setDocked(false); // force off() since dockable may not have dockControll at this time off(); + LLDockableFloater* dockable_floater = + dynamic_cast<LLDockableFloater*> (mDockableFloater); + if(dockable_floater != NULL) + { + dockable_floater->onDockHidden(); + } } else { - moveDockable(); + if(mEnabled) + { + moveDockable(); + } + LLDockableFloater* dockable_floater = + dynamic_cast<LLDockableFloater*> (mDockableFloater); + if(dockable_floater != NULL) + { + dockable_floater->onDockShown(); + } } mPrevDockRect = dockRect; |