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.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/indra/newview/llimconversation.cpp b/indra/newview/llimconversation.cpp
index 44cf300930..51e4fbfe19 100644
--- a/indra/newview/llimconversation.cpp
+++ b/indra/newview/llimconversation.cpp
@@ -54,6 +54,7 @@ LLIMConversation::LLIMConversation(const LLSD& session_id)
, mInputEditor(NULL)
, mInputEditorTopPad(0)
, mRefreshTimer(new LLTimer())
+ , mIsHostAttached(false)
{
mSession = LLIMModel::getInstance()->findIMSession(mSessionID);
@@ -127,6 +128,22 @@ void LLIMConversation::setVisible(BOOL visible)
setFocus(visible);
}
+/*virtual*/
+void LLIMConversation::setFocus(BOOL focus)
+{
+ LLTransientDockableFloater::setFocus(focus);
+
+ //Redirect focus to input editor
+ if (focus)
+ {
+ updateMessages();
+
+ if (mInputEditor)
+ {
+ mInputEditor->setFocus(TRUE);
+ }
+ }
+}
void LLIMConversation::addToHost(const LLUUID& session_id)
@@ -242,7 +259,6 @@ void LLIMConversation::enableDisableCallBtn()
&& mSession->mCallBackEnabled);
}
-
void LLIMConversation::onFocusReceived()
{
setBackgroundOpaque(true);
@@ -253,6 +269,12 @@ void LLIMConversation::onFocusReceived()
}
LLTransientDockableFloater::onFocusReceived();
+
+ LLIMFloaterContainer* container = LLFloaterReg::getTypedInstance<LLIMFloaterContainer>("im_container");
+ if (container)
+ {
+ container->selectConversationPair(mSessionID, true);
+ }
}
void LLIMConversation::onFocusLost()