diff options
author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-02-15 18:46:12 +0000 |
---|---|---|
committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-02-15 18:46:12 +0000 |
commit | 9c5e4d315a4b5f5a0793587c6a6620f6efc76332 (patch) | |
tree | 2426ebe09244c87d4f810d547e71c68345ff8bf2 | |
parent | 7286516e9193e7549c9d8ecde65df85402443fab (diff) | |
parent | f349c30d715b6d49ceaaf3d19610cbbaf982b368 (diff) |
viewer2 merge
-rw-r--r-- | indra/newview/llimfloater.cpp | 7 | ||||
-rw-r--r-- | indra/newview/llimfloatercontainer.cpp | 12 | ||||
-rw-r--r-- | indra/newview/llimfloatercontainer.h | 2 |
3 files changed, 21 insertions, 0 deletions
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index 94b540a7e1..52312b87a5 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -514,6 +514,13 @@ BOOL LLIMFloater::getVisible() // Treat inactive floater as invisible. bool is_active = im_container->getActiveFloater() == this; + + //torn off floater is always inactive + if (!is_active && getHost() != im_container) + { + return LLTransientDockableFloater::getVisible(); + } + // getVisible() returns TRUE when Tabbed IM window is minimized. return is_active && !im_container->isMinimized() && im_container->getVisible(); } diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp index 49521b5987..a775115ac9 100644 --- a/indra/newview/llimfloatercontainer.cpp +++ b/indra/newview/llimfloatercontainer.cpp @@ -145,4 +145,16 @@ LLIMFloaterContainer* LLIMFloaterContainer::getInstance() return LLFloaterReg::getTypedInstance<LLIMFloaterContainer>("im_container"); } +void LLIMFloaterContainer::setMinimized(BOOL b) +{ + LLMultiFloater::setMinimized(b); + + if (isMinimized()) return; + + if (getActiveFloater()) + { + getActiveFloater()->setVisible(TRUE); + } +} + // EOF diff --git a/indra/newview/llimfloatercontainer.h b/indra/newview/llimfloatercontainer.h index 46c0617c01..f6cdc25ebd 100644 --- a/indra/newview/llimfloatercontainer.h +++ b/indra/newview/llimfloatercontainer.h @@ -63,6 +63,8 @@ public: static LLIMFloaterContainer* getInstance(); + virtual void setMinimized(BOOL b); + private: typedef std::map<LLUUID,LLFloater*> avatarID_panel_map_t; avatarID_panel_map_t mSessions; |