diff options
author | Aaron Terrell (Enus) <enus@lindenlab.com> | 2010-08-30 11:56:33 -0700 |
---|---|---|
committer | Aaron Terrell (Enus) <enus@lindenlab.com> | 2010-08-30 11:56:33 -0700 |
commit | d04e8d757575dbb50877ef861adcfde427837bb6 (patch) | |
tree | b214237a4246e523754b356b003d1d2a163f21ab /indra/llui/lldockablefloater.cpp | |
parent | 3172b4db1ee4d2059d2605ce616bdb10c840fc03 (diff) | |
parent | d84c6625c707b5d61b71749b74f3cc4fb8f02048 (diff) |
merging up from viewer-development
Diffstat (limited to 'indra/llui/lldockablefloater.cpp')
-rw-r--r-- | indra/llui/lldockablefloater.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index bf55239f1b..ca2dc644a4 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -43,12 +43,13 @@ void LLDockableFloater::init(LLDockableFloater* thiz) thiz->setCanClose(TRUE); thiz->setCanDock(true); thiz->setCanMinimize(TRUE); + thiz->setOverlapsScreenChannel(false); + thiz->mForceDocking = false; } LLDockableFloater::LLDockableFloater(LLDockControl* dockControl, const LLSD& key, const Params& params) : LLFloater(key, params), mDockControl(dockControl), mUniqueDocking(true) - , mOverlapsScreenChannel(false) { init(this); mUseTongue = true; @@ -75,6 +76,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(); @@ -128,6 +135,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(); |