From f8f1252d32824d99e6f51fd1ea9789c1097f44de Mon Sep 17 00:00:00 2001 From: Alexei Arabadji Date: Tue, 15 Dec 2009 09:55:00 +0200 Subject: =?UTF-8?q?mplemented=20EXT-3396=20=E2=80=9CAll=20bottom=20bar=20b?= =?UTF-8?q?uttons,=20including=20chiclets=20and=20nearby=20chat,=20should?= =?UTF-8?q?=20work=20as=20toggles=E2=80=9D,=20made=20hide/unhide=20dockabl?= =?UTF-8?q?e=20floaters=20when=20undocked;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --HG-- branch : product-engine --- indra/llui/lldockablefloater.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'indra/llui/lldockablefloater.cpp') diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index 9c69e4f2b6..63faf44f9d 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -98,8 +98,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); + } } } -- cgit v1.2.3 From 7ba2f99ae01f0bc08c869e8a250c888a5c17c49a Mon Sep 17 00:00:00 2001 From: Alexei Arabadji Date: Tue, 15 Dec 2009 19:10:27 +0200 Subject: =?UTF-8?q?mplemented=20EXT-3395=20=E2=80=9CDocked=20IM/Chat=20win?= =?UTF-8?q?dows=20shouldn't=20hide=20when=20voice=20control=20panel=20is?= =?UTF-8?q?=20opened=E2=80=9D;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --HG-- branch : product-engine --- indra/llui/lldockablefloater.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'indra/llui/lldockablefloater.cpp') diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index 63faf44f9d..9dc7861992 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -38,6 +38,8 @@ //static LLHandle LLDockableFloater::sInstanceHandle; +static const std::string VOICE_FLOATER("floater_voice_controls"), IM_FLOATER("panel_im"); + //static void LLDockableFloater::init(LLDockableFloater* thiz) { @@ -114,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(); } -- cgit v1.2.3