diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/llwindow/llwindowwin32.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/linden/indra/llwindow/llwindowwin32.cpp b/linden/indra/llwindow/llwindowwin32.cpp index e9315c9..4ad044b 100644 --- a/linden/indra/llwindow/llwindowwin32.cpp +++ b/linden/indra/llwindow/llwindowwin32.cpp | |||
@@ -3703,6 +3703,10 @@ void LLWindowWin32::interruptLanguageTextInput() | |||
3703 | LLWinImm::notifyIME(himc, NI_COMPOSITIONSTR, CPS_COMPLETE, 0); | 3703 | LLWinImm::notifyIME(himc, NI_COMPOSITIONSTR, CPS_COMPLETE, 0); |
3704 | LLWinImm::releaseContext(mWindowHandle, himc); | 3704 | LLWinImm::releaseContext(mWindowHandle, himc); |
3705 | } | 3705 | } |
3706 | |||
3707 | // Win32 document says there will be no composition string | ||
3708 | // after NI_COMPOSITIONSTR returns. The following call to | ||
3709 | // resetPreedit should be a NOP unless IME goes mad... | ||
3706 | mPreeditor->resetPreedit(); | 3710 | mPreeditor->resetPreedit(); |
3707 | } | 3711 | } |
3708 | } | 3712 | } |
@@ -3846,7 +3850,12 @@ void LLWindowWin32::handleCompositionMessage(const U32 indexes) | |||
3846 | } | 3850 | } |
3847 | } | 3851 | } |
3848 | 3852 | ||
3849 | if (preedit_string.length() > 0) | 3853 | if (preedit_string.length() == 0) |
3854 | { | ||
3855 | preedit_segment_lengths.clear(); | ||
3856 | preedit_standouts.clear(); | ||
3857 | } | ||
3858 | else | ||
3850 | { | 3859 | { |
3851 | if (preedit_segment_lengths.size() == 0) | 3860 | if (preedit_segment_lengths.size() == 0) |
3852 | { | 3861 | { |
@@ -3856,8 +3865,8 @@ void LLWindowWin32::handleCompositionMessage(const U32 indexes) | |||
3856 | { | 3865 | { |
3857 | preedit_standouts.assign(preedit_segment_lengths.size(), FALSE); | 3866 | preedit_standouts.assign(preedit_segment_lengths.size(), FALSE); |
3858 | } | 3867 | } |
3859 | mPreeditor->updatePreedit(preedit_string, preedit_segment_lengths, preedit_standouts, caret_position); | ||
3860 | } | 3868 | } |
3869 | mPreeditor->updatePreedit(preedit_string, preedit_segment_lengths, preedit_standouts, caret_position); | ||
3861 | 3870 | ||
3862 | // Some IME doesn't query char position after WM_IME_COMPOSITION, | 3871 | // Some IME doesn't query char position after WM_IME_COMPOSITION, |
3863 | // so we need to update them actively. | 3872 | // so we need to update them actively. |