Skip to content

Commit 9f8ad7a

Browse files
committed
fix: access UI in IO scope
1 parent d72f5e5 commit 9f8ad7a

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

src/main/kotlin/com/github/xepozz/php_dump/panel/OpcacheSettingsPanel.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import com.intellij.ide.util.treeView.AbstractTreeStructure
1414
import com.intellij.openapi.Disposable
1515
import com.intellij.openapi.actionSystem.ActionManager
1616
import com.intellij.openapi.actionSystem.DefaultActionGroup
17+
import com.intellij.openapi.application.EDT
1718
import com.intellij.openapi.fileEditor.FileEditorManager
1819
import com.intellij.openapi.project.Project
1920
import com.intellij.openapi.ui.SimpleToolWindowPanel
@@ -92,7 +93,7 @@ class OpcacheSettingsPanel(private val project: Project) :
9293
}
9394

9495
private fun refreshData() {
95-
CoroutineScope(Dispatchers.IO).launch {
96+
CoroutineScope(Dispatchers.EDT).launch {
9697
progressBar.setIndeterminate(true)
9798
progressBar.isVisible = true
9899
tree.emptyText.text = "Loading..."

src/main/kotlin/com/github/xepozz/php_dump/panel/OpcodesTerminalPanel.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import com.intellij.openapi.actionSystem.ActionUpdateThread
1313
import com.intellij.openapi.actionSystem.AnAction
1414
import com.intellij.openapi.actionSystem.AnActionEvent
1515
import com.intellij.openapi.actionSystem.DefaultActionGroup
16+
import com.intellij.openapi.application.EDT
1617
import com.intellij.openapi.command.WriteCommandAction
1718
import com.intellij.openapi.editor.EditorFactory
1819
import com.intellij.openapi.editor.ex.EditorEx
@@ -28,6 +29,7 @@ import com.jetbrains.php.lang.PhpFileType
2829
import kotlinx.coroutines.CoroutineScope
2930
import kotlinx.coroutines.Dispatchers
3031
import kotlinx.coroutines.launch
32+
import kotlinx.coroutines.withContext
3133
import java.awt.BorderLayout
3234
import java.awt.GridLayout
3335
import java.awt.event.ComponentAdapter
@@ -194,7 +196,9 @@ class OpcodesTerminalPanel(
194196

195197
val content = result as? String ?: "No output"
196198

197-
setDocumentText(project, content)
199+
withContext(Dispatchers.EDT) {
200+
setDocumentText(project, content)
201+
}
198202
}
199203
}
200204

src/main/kotlin/com/github/xepozz/php_dump/panel/TokenTreePanel.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import com.intellij.ide.util.treeView.AbstractTreeStructure
1212
import com.intellij.openapi.Disposable
1313
import com.intellij.openapi.actionSystem.ActionManager
1414
import com.intellij.openapi.actionSystem.DefaultActionGroup
15+
import com.intellij.openapi.application.EDT
1516
import com.intellij.openapi.editor.markup.EffectType
1617
import com.intellij.openapi.editor.markup.HighlighterLayer
1718
import com.intellij.openapi.editor.markup.HighlighterTargetArea
@@ -134,7 +135,7 @@ class TokenTreePanel(private val project: Project) :
134135
}
135136

136137
private fun refreshData() {
137-
CoroutineScope(Dispatchers.IO).launch {
138+
CoroutineScope(Dispatchers.EDT).launch {
138139
progressBar.setIndeterminate(true)
139140
progressBar.isVisible = true
140141
tree.emptyText.text = "Loading..."

0 commit comments

Comments
 (0)