From edb80ec0ca9d22e8d373c279ec823ef86d052345 Mon Sep 17 00:00:00 2001
From: Karlatemp <karlatemp@vip.qq.com>
Date: Sat, 2 May 2020 19:12:38 +0800
Subject: [PATCH] Fix the error that directly closing the verification code
 window will block the coroutine.

---
 .../kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt        | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt
index c9487dc6f..1de87c9f7 100644
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/WindowHelperJvm.kt
@@ -22,6 +22,7 @@ import java.awt.event.WindowAdapter
 import java.awt.event.WindowEvent
 import javax.swing.JFrame
 import javax.swing.JTextField
+import javax.swing.SwingUtilities
 
 // 隔离类代码
 internal object WindowHelperJvm {
@@ -88,7 +89,9 @@ internal suspend fun openWindow(title: String = "", initializer: WindowInitialzi
     frame.title = title
     frame.isVisible = true
 
-    val result = def.await()
-    frame.dispose()
+    val result = def.await().trim()
+    SwingUtilities.invokeLater {
+        frame.dispose()
+    }
     return result
 }