diff options
author | Oz Linden <oz@lindenlab.com> | 2016-05-06 10:28:42 -0400 |
---|---|---|
committer | Oz Linden <oz@lindenlab.com> | 2016-05-06 10:28:42 -0400 |
commit | 950c41d184b340a7a3370c2cbda5d1eed9a17b0b (patch) | |
tree | 373912394af6834d7d56258becf46954244b8423 /indra/llui/lltexteditor.cpp | |
parent | 20198b750d02c769ab6845226f98ce6e5dd1f20b (diff) | |
parent | 7f5e6cea124e1193b199a3eabd50bdab96340c13 (diff) |
merge 4.0.4-release and MAINT-5974
Diffstat (limited to 'indra/llui/lltexteditor.cpp')
-rw-r--r-- | indra/llui/lltexteditor.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index d170d17f94..73f961b36b 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -1716,7 +1716,20 @@ void LLTextEditor::unindentLineBeforeCloseBrace() LLWString text = getWText(); if( ' ' == text[ mCursorPos - 1 ] ) { - removeCharOrTab(); + S32 line = getLineNumFromDocIndex(mCursorPos, false); + S32 line_start = getLineStart(line); + + // Jump over spaces in the current line + while ((' ' == text[line_start]) && (line_start < mCursorPos)) + { + line_start++; + } + + // Make sure there is nothing but ' ' before the Brace we are unindenting + if (line_start == mCursorPos) + { + removeCharOrTab(); + } } } } @@ -1800,7 +1813,7 @@ BOOL LLTextEditor::handleUnicodeCharHere(llwchar uni_char) // Handle most keys only if the text editor is writeable. if( !mReadOnly ) { - if( '}' == uni_char ) + if( mAutoIndent && '}' == uni_char ) { unindentLineBeforeCloseBrace(); } |