The function InvokeInputMethodFunction() is responsible for invocation of IME API. Typically it uses PostMessage() to execute corresponding IME function on the toolkit thread but if DnD operation takes place SendMessage() is used. The state of m_inputMethodWaitEvent event object remains signalled after SendMessage() execution. That causes failure of subsequent IME functions calls via PostMessage().
Fix: SendMessage() and PostMessage() calls inside InvokeInputMethodFunction() should be synchronised. The state of m_inputMethodWaitEvent event object must be reseted right after SendMessage() execution. ------------- Commit messages: - 8261231: Windows IME was disabled after DnD operation Changes: https://git.openjdk.java.net/jdk/pull/2448/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2448&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8261231 Stats: 5 lines in 1 file changed: 3 ins; 1 del; 1 mod Patch: https://git.openjdk.java.net/jdk/pull/2448.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/2448/head:pull/2448 PR: https://git.openjdk.java.net/jdk/pull/2448