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

Reply via email to