diff options
author | Alexei Arabadji <aarabadji@productengine.com> | 2010-01-25 12:07:23 +0200 |
---|---|---|
committer | Alexei Arabadji <aarabadji@productengine.com> | 2010-01-25 12:07:23 +0200 |
commit | 6ffc21e00d07a7c90d46009571556a9caec96e62 (patch) | |
tree | 8e17f9fb2cfc81f2779c377fe99ea1909ec93314 /indra/newview/lltransientdockablefloater.cpp | |
parent | ab0c9c6754836cb26a520d0a9b2d7bbdd13a5f32 (diff) |
fixed EXT-3395 "Docked IM/Chat windows shouldn't hide when voice control panel is opened",
added transient controls group 'DOCKED' for temporary excluded docked floaters and dock widgets;
--HG--
branch : product-engine
Diffstat (limited to 'indra/newview/lltransientdockablefloater.cpp')
-rw-r--r-- | indra/newview/lltransientdockablefloater.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/indra/newview/lltransientdockablefloater.cpp b/indra/newview/lltransientdockablefloater.cpp index c9bfe178ce..9d39aa5182 100644 --- a/indra/newview/lltransientdockablefloater.cpp +++ b/indra/newview/lltransientdockablefloater.cpp @@ -48,6 +48,14 @@ LLTransientDockableFloater::LLTransientDockableFloater(LLDockControl* dockContro LLTransientDockableFloater::~LLTransientDockableFloater() { LLTransientFloaterMgr::getInstance()->unregisterTransientFloater(this); + LLView* dock = getDockWidget(); + LLTransientFloaterMgr::getInstance()->removeControlView( + LLTransientFloaterMgr::DOCKED, this); + if (dock != NULL) + { + LLTransientFloaterMgr::getInstance()->removeControlView( + LLTransientFloaterMgr::DOCKED, dock); + } } void LLTransientDockableFloater::setVisible(BOOL visible) @@ -55,18 +63,18 @@ void LLTransientDockableFloater::setVisible(BOOL visible) LLView* dock = getDockWidget(); if(visible && isDocked()) { - LLTransientFloaterMgr::getInstance()->addControlView(this); + LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::DOCKED, this); if (dock != NULL) { - LLTransientFloaterMgr::getInstance()->addControlView(dock); + LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::DOCKED, dock); } } else { - LLTransientFloaterMgr::getInstance()->removeControlView(this); + LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::DOCKED, this); if (dock != NULL) { - LLTransientFloaterMgr::getInstance()->removeControlView(dock); + LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::DOCKED, dock); } } @@ -78,18 +86,18 @@ void LLTransientDockableFloater::setDocked(bool docked, bool pop_on_undock) LLView* dock = getDockWidget(); if(docked) { - LLTransientFloaterMgr::getInstance()->addControlView(this); + LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::DOCKED, this); if (dock != NULL) { - LLTransientFloaterMgr::getInstance()->addControlView(dock); + LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::DOCKED, dock); } } else { - LLTransientFloaterMgr::getInstance()->removeControlView(this); + LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::DOCKED, this); if (dock != NULL) { - LLTransientFloaterMgr::getInstance()->removeControlView(dock); + LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::DOCKED, dock); } } |