diff options
author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-08-03 13:35:33 +0100 |
---|---|---|
committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-08-03 13:35:33 +0100 |
commit | c89ff6e80be24f3c4c910b7f380ff587f5853455 (patch) | |
tree | 1945871fd38361534236096995d51fef9a5130ac /indra/llui/lldockablefloater.cpp | |
parent | 332cf3d32a8ddd56ac56ce36686bdfdedae0f8eb (diff) | |
parent | dd6d7dde7e27130b72693c4bea0661c6b01efff2 (diff) |
merge from PE's viewer-trunk
Diffstat (limited to 'indra/llui/lldockablefloater.cpp')
-rw-r--r-- | indra/llui/lldockablefloater.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index 4f5fcddbf4..f9983278d1 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -50,6 +50,7 @@ void LLDockableFloater::init(LLDockableFloater* thiz) thiz->setCanDock(true); thiz->setCanMinimize(TRUE); thiz->setOverlapsScreenChannel(false); + thiz->mForceDocking = false; } LLDockableFloater::LLDockableFloater(LLDockControl* dockControl, @@ -81,6 +82,12 @@ LLDockableFloater::~LLDockableFloater() BOOL LLDockableFloater::postBuild() { + // Remember we should force docking when the floater is opened for the first time + if (mIsDockedStateForcedCallback != NULL && mIsDockedStateForcedCallback()) + { + mForceDocking = true; + } + mDockTongue = LLUI::getUIImage("windows/Flyout_Pointer.png"); LLFloater::setDocked(true); return LLView::postBuild(); @@ -134,6 +141,14 @@ void LLDockableFloater::resetInstance() void LLDockableFloater::setVisible(BOOL visible) { + // Force docking if requested + if (visible && mForceDocking) + { + setCanDock(true); + setDocked(true); + mForceDocking = false; + } + if(visible && isDocked()) { resetInstance(); |