summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2010-02-15 18:42:18 +0000
committerTofu Linden <tofu.linden@lindenlab.com>2010-02-15 18:42:18 +0000
commitf349c30d715b6d49ceaaf3d19610cbbaf982b368 (patch)
treeb2063b58545b4b685a120464db31213e52d2b6a6 /indra
parent398af7dd40a060cf9ad8d799df03d448c2f53a96 (diff)
parentb20e7dcb7221a949318f0dbe3084f82b3f8d6173 (diff)
PE merge
Diffstat (limited to 'indra')
-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;