diff options
author | Eric M. Tulla (BigPapi) <tulla@lindenlab.com> | 2009-12-15 15:41:51 -0500 |
---|---|---|
committer | Eric M. Tulla (BigPapi) <tulla@lindenlab.com> | 2009-12-15 15:41:51 -0500 |
commit | 08495d3f63e1e926e44185be07269ed40363024a (patch) | |
tree | 8e32278f96a14b36a4215e7fac16f68d072da961 /indra/llui/lldockablefloater.cpp | |
parent | 870d4449f5eec1c2a7e5e4627a0433846ab256aa (diff) | |
parent | 06f8017674295191d3c4400eacb36e34a167ffa5 (diff) |
Merging in latest PE changes from https://hg.aws.productengine.com/secondlife/viewer-2-0/
Diffstat (limited to 'indra/llui/lldockablefloater.cpp')
-rw-r--r-- | indra/llui/lldockablefloater.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index 9c69e4f2b6..9dc7861992 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -38,6 +38,8 @@ //static LLHandle<LLFloater> LLDockableFloater::sInstanceHandle; +static const std::string VOICE_FLOATER("floater_voice_controls"), IM_FLOATER("panel_im"); + //static void LLDockableFloater::init(LLDockableFloater* thiz) { @@ -98,8 +100,15 @@ void LLDockableFloater::toggleInstance(const LLSD& sdname) else if (instance != NULL) { instance->setMinimized(FALSE); - instance->setVisible(TRUE); - gFloaterView->bringToFront(instance); + if (instance->getVisible()) + { + instance->setVisible(FALSE); + } + else + { + instance->setVisible(TRUE); + gFloaterView->bringToFront(instance); + } } } @@ -107,9 +116,11 @@ void LLDockableFloater::resetInstance() { if (mUniqueDocking && sInstanceHandle.get() != this) { - if (sInstanceHandle.get() != NULL && sInstanceHandle.get()->isDocked()) + if (sInstanceHandle.get() != NULL && sInstanceHandle.get()->isDocked() + && (getName() != VOICE_FLOATER || sInstanceHandle.get()->getName() != IM_FLOATER) + && (getName() != IM_FLOATER || sInstanceHandle.get()->getName() != VOICE_FLOATER)) { - sInstanceHandle.get()->setVisible(FALSE); + sInstanceHandle.get()->setVisible(FALSE); } sInstanceHandle = getHandle(); } |