summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2010-02-15 18:46:12 +0000
committerTofu Linden <tofu.linden@lindenlab.com>2010-02-15 18:46:12 +0000
commit9c5e4d315a4b5f5a0793587c6a6620f6efc76332 (patch)
tree2426ebe09244c87d4f810d547e71c68345ff8bf2
parent7286516e9193e7549c9d8ecde65df85402443fab (diff)
parentf349c30d715b6d49ceaaf3d19610cbbaf982b368 (diff)
viewer2 merge
-rw-r--r--indra/newview/llimfloater.cpp7
-rw-r--r--indra/newview/llimfloatercontainer.cpp12
-rw-r--r--indra/newview/llimfloatercontainer.h2
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;