diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/llui/llchatentry.cpp | 12 | ||||
-rw-r--r-- | indra/llui/llchatentry.h | 2 | ||||
-rw-r--r-- | indra/llui/lltexteditor.cpp | 7 | ||||
-rw-r--r-- | indra/llui/lltexteditor.h | 1 | ||||
-rw-r--r-- | indra/newview/llfloaterimnearbychathandler.cpp | 1 | ||||
-rw-r--r-- | indra/newview/llfloaterimsession.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llimview.cpp | 3 |
7 files changed, 24 insertions, 4 deletions
diff --git a/indra/llui/llchatentry.cpp b/indra/llui/llchatentry.cpp index f6c4b69308..416c3e65e4 100644 --- a/indra/llui/llchatentry.cpp +++ b/indra/llui/llchatentry.cpp @@ -163,6 +163,18 @@ bool LLChatEntry::useLabel() return !getLength() && !mLabel.empty(); } +void LLChatEntry::onFocusReceived() +{ + LLUICtrl::onFocusReceived(); + updateAllowingLanguageInput(); +} + +void LLChatEntry::onFocusLost() +{ + LLTextEditor::focusLostHelper(); + LLUICtrl::onFocusLost(); +} + BOOL LLChatEntry::handleSpecialKey(const KEY key, const MASK mask) { BOOL handled = FALSE; diff --git a/indra/llui/llchatentry.h b/indra/llui/llchatentry.h index a20a505ae1..3a5e87e8c8 100644 --- a/indra/llui/llchatentry.h +++ b/indra/llui/llchatentry.h @@ -62,6 +62,8 @@ public: virtual void draw(); virtual void onCommit(); + /*virtual*/ void onFocusReceived(); + /*virtual*/ void onFocusLost(); void enableSingleLineMode(bool single_line_mode); boost::signals2::connection setTextExpandedCallback(const commit_signal_t::slot_type& cb); diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 834f213097..09caec7b73 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -1964,8 +1964,7 @@ void LLTextEditor::onFocusReceived() updateAllowingLanguageInput(); } -// virtual, from LLView -void LLTextEditor::onFocusLost() +void LLTextEditor::focusLostHelper() { updateAllowingLanguageInput(); @@ -1982,7 +1981,11 @@ void LLTextEditor::onFocusLost() // Make sure cursor is shown again getWindow()->showCursorFromMouseMove(); +} +void LLTextEditor::onFocusLost() +{ + focusLostHelper(); LLTextBase::onFocusLost(); } diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h index 969e072704..13f63a17ef 100644 --- a/indra/llui/lltexteditor.h +++ b/indra/llui/lltexteditor.h @@ -255,6 +255,7 @@ protected: S32 insert(S32 pos, const LLWString &wstr, bool group_with_next_op, LLTextSegmentPtr segment); S32 remove(S32 pos, S32 length, bool group_with_next_op); + void focusLostHelper(); void updateAllowingLanguageInput(); BOOL hasPreeditString() const; diff --git a/indra/newview/llfloaterimnearbychathandler.cpp b/indra/newview/llfloaterimnearbychathandler.cpp index 9ce5e12897..cc00b6fd10 100644 --- a/indra/newview/llfloaterimnearbychathandler.cpp +++ b/indra/newview/llfloaterimnearbychathandler.cpp @@ -606,6 +606,7 @@ void LLFloaterIMNearbyChatHandler::processChat(const LLChat& chat_msg, //Don't show nearby toast, if conversation is visible and selected if ((nearby_chat->hasFocus()) || + (LLFloater::isVisible(nearby_chat) && nearby_chat->isTornOff() && !nearby_chat->isMinimized()) || ((im_box->getSelectedSession().isNull() && ((LLFloater::isVisible(im_box) && !im_box->isMinimized() && im_box->isFrontmost()) || (LLFloater::isVisible(nearby_chat) && !nearby_chat->isMinimized() && nearby_chat->isFrontmost()))))) diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp index 848d5c34d2..1de6effa2b 100644 --- a/indra/newview/llfloaterimsession.cpp +++ b/indra/newview/llfloaterimsession.cpp @@ -109,7 +109,7 @@ void LLFloaterIMSession::refresh() void LLFloaterIMSession::onTearOffClicked() { LLFloaterIMSessionTab::onTearOffClicked(); - + mSpeakingIndicator->setVisible(mIsP2PChat); if(mIsP2PChat) { if(isTornOff()) diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 214b177a1b..ff163f5b25 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -314,7 +314,8 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg) // 4. Toast if ((("toast" == user_preferences) && - (ON_TOP_AND_ITEM_IS_SELECTED != conversations_floater_status)) + (ON_TOP_AND_ITEM_IS_SELECTED != conversations_floater_status) && + (!session_floater->isTornOff() || !LLFloater::isVisible(session_floater))) || !session_floater->isMessagePaneExpanded()) { |