changeset 14961:6a3692d3aef6

8261231: Windows IME was disabled after DnD operation Reviewed-by: kizune, serb
author dmarkov
date Tue, 16 Feb 2021 10:38:42 +0000
parents 3857746c3ffb
children 0d7b83e45b9a
files src/windows/native/sun/windows/awt_Toolkit.cpp
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/windows/native/sun/windows/awt_Toolkit.cpp	Fri Jan 23 13:47:46 2015 +0300
+++ b/src/windows/native/sun/windows/awt_Toolkit.cpp	Tue Feb 16 10:38:42 2021 +0000
@@ -3138,10 +3138,12 @@
      * function once the DND is active; otherwise a hang is possible since DND may wait for
      * the IME completion.
      */
+    CriticalSection::Lock lock(m_inputMethodLock);
     if (isInDoDragDropLoop) {
-        return SendMessage(msg, wParam, lParam);
+        SendMessage(msg, wParam, lParam);
+        ::ResetEvent(m_inputMethodWaitEvent);
+        return m_inputMethodData;
     } else {
-        CriticalSection::Lock lock(m_inputMethodLock);
         if (PostMessage(msg, wParam, lParam)) {
             ::WaitForSingleObject(m_inputMethodWaitEvent, INFINITE);
             return m_inputMethodData;