summaryrefslogtreecommitdiff
path: root/indra/newview/llnearbychat.cpp
diff options
context:
space:
mode:
authorAlexanderP ProductEngine <apaschenko@productengine.com>2012-07-04 16:45:02 +0300
committerAlexanderP ProductEngine <apaschenko@productengine.com>2012-07-04 16:45:02 +0300
commit73ad740443e615467f7e14fe4fb3f04d8abe2f9c (patch)
treed3ddf32376a98163e88bf60a689501646b79ebab /indra/newview/llnearbychat.cpp
parentc76c73770bf1a4095100cdb79021826ebebbd2f0 (diff)
CHUI-170 FIXED Save Torn off state of Nearby Chat between sessions
Diffstat (limited to 'indra/newview/llnearbychat.cpp')
-rw-r--r--indra/newview/llnearbychat.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 644304aff3..384762549a 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -345,15 +345,36 @@ void LLNearbyChat::enableDisableCallBtn()
getChildView("voice_call_btn")->setEnabled(false /*btn_enabled*/);
}
+void LLNearbyChat::onTearOffClicked()
+{
+ LLIMConversation::onTearOffClicked();
+
+ LLIMFloaterContainer* im_box = LLIMFloaterContainer::getInstance();
+
+ // see CHUI-170: Save torn-off state of the nearby chat between sessions
+ BOOL in_the_multifloater = (getHost() == im_box);
+ gSavedSettings.setBOOL("NearbyChatIsNotTornOff", in_the_multifloater);
+}
+
void LLNearbyChat::addToHost()
{
- if (LLIMConversation::isChatMultiTab())
+ if ( LLIMConversation::isChatMultiTab())
{
LLIMFloaterContainer* im_box = LLIMFloaterContainer::getInstance();
-
if (im_box)
{
- im_box->addFloater(this, FALSE, LLTabContainer::END);
+ if (gSavedSettings.getBOOL("NearbyChatIsNotTornOff"))
+ {
+ im_box->addFloater(this, TRUE, LLTabContainer::END);
+ }
+ else
+ {
+ // setting of the "potential" host: this sequence sets
+ // LLFloater::mHostHandle = NULL (a current host), but
+ // LLFloater::mLastHostHandle = im_box (a "future" host)
+ setHost(im_box);
+ setHost(NULL);
+ }
}
}
}