diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 8c6792bd717b4d77a59d4b9d45dad6c6812bbb16..217aec38e278c5cb05a7e1913782a1c56988d5d2 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -1784,6 +1784,18 @@ BOOL LLTextEditor::handleSpecialKey(const KEY key, const MASK mask) autoIndent(); } } + else if (mask == MASK_SHIFT) + { + if( mCursorPos > 0 ) + { + const LLWString& text = getWText(); + if( '\n' != text[ mCursorPos - 1 ] ) + { + addLineBreakChar(); + handled = TRUE; + } + } + } else { handled = FALSE; diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h index 7d77c1bacd8f3003401450ed9cf430928480f1a6..c7c024cdb47a4c185b91197c70db0969893e3ff1 100644 --- a/indra/llui/lltexteditor.h +++ b/indra/llui/lltexteditor.h @@ -213,7 +213,6 @@ class LLTextEditor : bool getShowContextMenu() const { return mShowContextMenu; } void setPassDelete(BOOL b) { mPassDelete = b; } - void handleNewLine() { addLineBreakChar(FALSE); } protected: void showContextMenu(S32 x, S32 y); diff --git a/indra/newview/llfloaterimnearbychat.cpp b/indra/newview/llfloaterimnearbychat.cpp index fb2557b80cd8c88dcf5f43db8fe63cd831713226..49937cedefaae65a25be151bcb9161477e72f7bf 100644 --- a/indra/newview/llfloaterimnearbychat.cpp +++ b/indra/newview/llfloaterimnearbychat.cpp @@ -426,20 +426,6 @@ BOOL LLFloaterIMNearbyChat::handleKeyHere( KEY key, MASK mask ) sendChat(CHAT_TYPE_SHOUT); handled = TRUE; } - else if (KEY_RETURN == key && mask == MASK_SHIFT) - { - // newline - if (mInputEditor) - { - // but don't allow multiple new lines - LLWString raw_text = mInputEditor->getWText(); - if (raw_text[raw_text.length() - 1] != '\n') - { - mInputEditor->handleNewLine(); - } - } - handled = TRUE; - } if((mask == MASK_ALT) && isTornOff()) {