diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llimconversation.cpp | 33 | ||||
-rw-r--r-- | indra/newview/llimconversation.h | 2 |
2 files changed, 24 insertions, 11 deletions
diff --git a/indra/newview/llimconversation.cpp b/indra/newview/llimconversation.cpp index 2ad7f9b193..3b334df189 100644 --- a/indra/newview/llimconversation.cpp +++ b/indra/newview/llimconversation.cpp @@ -393,7 +393,7 @@ void LLIMConversation::updateHeaderAndToolbar() // prevent start conversation before its container LLIMFloaterContainer::getInstance(); - bool is_torn_off = !getHost(); + bool is_torn_off = checkIfTornOff(); if (!is_torn_off) { hideAllStandardButtons(); @@ -505,16 +505,7 @@ void LLIMConversation::onSlide(LLIMConversation* self) /*virtual*/ void LLIMConversation::onOpen(const LLSD& key) { - LLIMFloaterContainer* host_floater = dynamic_cast<LLIMFloaterContainer*>(getHost()); - 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(); + checkIfTornOff(); } // virtual @@ -546,3 +537,23 @@ bool LLIMConversation::isChatMultiTab() // Restart is required in order to change chat window type. return true; } + +bool LLIMConversation::checkIfTornOff() +{ + bool isTorn = !getHost(); + if (!isTorn) + { + LLIMFloaterContainer* host_floater = dynamic_cast<LLIMFloaterContainer*>(getHost()); + + // Show the messages pane when opening a floater hosted in the Conversations + host_floater->collapseMessagesPane(false); + } + + if (isTorn != isTornOff()) + { + setTornOff(isTorn); + updateHeaderAndToolbar(); + } + + return isTorn; +}
\ No newline at end of file diff --git a/indra/newview/llimconversation.h b/indra/newview/llimconversation.h index c54081d316..0960d6db88 100644 --- a/indra/newview/llimconversation.h +++ b/indra/newview/llimconversation.h @@ -138,6 +138,8 @@ private: */ void reshapeChatHistory(); + bool checkIfTornOff(); + LLTimer* mRefreshTimer; ///< Defines the rate at which refresh() is called. bool mHadFocus; |