summaryrefslogtreecommitdiff
path: root/indra/newview/llimconversation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llimconversation.cpp')
-rw-r--r--indra/newview/llimconversation.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/indra/newview/llimconversation.cpp b/indra/newview/llimconversation.cpp
index 3e23d75d28..b56f30312a 100644
--- a/indra/newview/llimconversation.cpp
+++ b/indra/newview/llimconversation.cpp
@@ -103,15 +103,15 @@ BOOL LLIMConversation::postBuild()
mInputEditorTopPad = mChatHistory->getRect().mBottom - mInputEditor->getRect().mTop;
- if (!isTornOff())
- {
- setOpenPositioning(LLFloaterEnums::POSITIONING_RELATIVE);
- }
+ setOpenPositioning(LLFloaterEnums::POSITIONING_RELATIVE);
buildParticipantList();
updateHeaderAndToolbar();
+ mSaveRect = isTornOff();
+ initRectControl();
+
if (isChatMultiTab())
{
if (mIsNearbyChat)
@@ -364,12 +364,14 @@ void LLIMConversation::onSlide(LLIMConversation* self)
void LLIMConversation::onOpen(const LLSD& key)
{
LLIMFloaterContainer* host_floater = dynamic_cast<LLIMFloaterContainer*>(getHost());
- if (host_floater)
+ bool is_hosted = !!host_floater;
+ if (is_hosted)
{
// Show the messages pane when opening a floater hosted in the Conversations
host_floater->collapseMessagesPane(false);
}
+ setTornOff(!is_hosted);
updateHeaderAndToolbar();
}
@@ -389,6 +391,9 @@ void LLIMConversation::onClose(bool app_quitting)
void LLIMConversation::onTearOffClicked()
{
+ setFollows(isTornOff()? FOLLOWS_ALL : FOLLOWS_NONE);
+ mSaveRect = isTornOff();
+ initRectControl();
LLFloater::onClickTearOff(this);
updateHeaderAndToolbar();
}