diff options
author | Monty Brandenberg <monty@lindenlab.com> | 2014-04-03 18:56:46 -0400 |
---|---|---|
committer | Monty Brandenberg <monty@lindenlab.com> | 2014-04-03 18:56:46 -0400 |
commit | d7481cd07c3e0b5eed54ff6a3539406d09ed0669 (patch) | |
tree | 7e0d2a2a9733784f16518b977423deb225021651 /indra/llui/lltexteditor.cpp | |
parent | 076761a03d7cb8b53e6e3d4f2120091eabeba37a (diff) | |
parent | 31a3a3da5db077c4d9b8fe06a18de98c822db6ab (diff) |
Merge. Refresh from viewer-release after 3.7.4 release.
Diffstat (limited to 'indra/llui/lltexteditor.cpp')
-rwxr-xr-x | indra/llui/lltexteditor.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 0c16e06109..02c81c0744 100755 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -310,7 +310,7 @@ LLTextEditor::~LLTextEditor() // Scrollbar is deleted by LLView std::for_each(mUndoStack.begin(), mUndoStack.end(), DeletePointer()); - + mUndoStack.clear(); // context menu is owned by menu holder, not us //delete mContextMenu; } @@ -666,6 +666,14 @@ void LLTextEditor::selectAll() updatePrimary(); } +void LLTextEditor::selectByCursorPosition(S32 prev_cursor_pos, S32 next_cursor_pos) +{ + setCursorPos(prev_cursor_pos); + startSelection(); + setCursorPos(next_cursor_pos); + endSelection(); +} + BOOL LLTextEditor::handleMouseDown(S32 x, S32 y, MASK mask) { BOOL handled = FALSE; @@ -713,7 +721,6 @@ BOOL LLTextEditor::handleMouseDown(S32 x, S32 y, MASK mask) setCursorAtLocalPos( x, y, true ); startSelection(); } - gFocusMgr.setMouseCapture( this ); } handled = TRUE; @@ -722,6 +729,10 @@ BOOL LLTextEditor::handleMouseDown(S32 x, S32 y, MASK mask) // Delay cursor flashing resetCursorBlink(); + if (handled && !gFocusMgr.getMouseCapture()) + { + gFocusMgr.setMouseCapture( this ); + } return handled; } @@ -1609,7 +1620,7 @@ BOOL LLTextEditor::handleControlKey(const KEY key, const MASK mask) } } - if (handled) + if (handled && !gFocusMgr.getMouseCapture()) { updatePrimary(); } |