diff options
Diffstat (limited to 'indra/llui/lltexteditor.cpp')
-rw-r--r-- | indra/llui/lltexteditor.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 52f8c19ebd..1ec62f6927 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -286,7 +286,8 @@ LLTextEditor::LLTextEditor( mMouseDownX(0), mMouseDownY(0), mLastSelectionX(-1), - mLastSelectionY(-1) + mLastSelectionY(-1), + mLastIMEPosition(-1,-1) { mSourceID.generate(); @@ -2799,7 +2800,15 @@ void LLTextEditor::drawCursor() 1); } - + // Make sure the IME is in the right place + LLRect screen_pos = getScreenRect(); + LLCoordGL ime_pos( screen_pos.mLeft + llfloor(cursor_left), screen_pos.mBottom + llfloor(cursor_top) ); + if ( ime_pos.mX != mLastIMEPosition.mX || ime_pos.mY != mLastIMEPosition.mY ) + { + mLastIMEPosition.mX = ime_pos.mX; + mLastIMEPosition.mY = ime_pos.mY; + getWindow()->setLanguageTextInput( ime_pos ); + } } } } |