@@ -177,31 +177,31 @@ private IntPtr SourceHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, re
177177 switch ( ( WM ) msg )
178178 {
179179 case WM . IME_SETCONTEXT :
180- {
181- OnImeSetContext ( hwnd , ( uint ) msg , wParam , lParam ) ;
182- handled = true ;
183- break ;
184- }
180+ {
181+ OnImeSetContext ( hwnd , ( uint ) msg , wParam , lParam ) ;
182+ handled = true ;
183+ break ;
184+ }
185185 case WM . IME_STARTCOMPOSITION :
186- {
187- OnIMEStartComposition ( hwnd ) ;
188- hasImeComposition = true ;
189- handled = true ;
190- break ;
191- }
186+ {
187+ OnIMEStartComposition ( hwnd ) ;
188+ hasImeComposition = true ;
189+ handled = true ;
190+ break ;
191+ }
192192 case WM . IME_COMPOSITION :
193- {
194- OnImeComposition ( hwnd , lParam . ToInt32 ( ) ) ;
195- handled = true ;
196- break ;
197- }
193+ {
194+ OnImeComposition ( hwnd , lParam . ToInt32 ( ) ) ;
195+ handled = true ;
196+ break ;
197+ }
198198 case WM . IME_ENDCOMPOSITION :
199- {
200- OnImeEndComposition ( hwnd ) ;
201- hasImeComposition = false ;
202- handled = true ;
203- break ;
204- }
199+ {
200+ OnImeEndComposition ( hwnd ) ;
201+ hasImeComposition = false ;
202+ handled = true ;
203+ break ;
204+ }
205205 }
206206
207207 return handled ? IntPtr . Zero : new IntPtr ( 1 ) ;
@@ -253,7 +253,13 @@ public void CancelComposition(IntPtr hwnd)
253253
254254 private void OnImeEndComposition ( IntPtr hwnd )
255255 {
256- owner . GetBrowserHost ( ) . ImeFinishComposingText ( false ) ;
256+ // Korean IMEs somehow ignore function calls to ::ImeFinishComposingText()
257+ // The same letter is commited in ::OnImeComposition.
258+ if ( languageCodeId != ImeNative . LANG_KOREAN )
259+ {
260+ owner . GetBrowserHost ( ) . ImeFinishComposingText ( false ) ;
261+ }
262+
257263 DestroyImeWindow ( hwnd ) ;
258264 }
259265
0 commit comments