From f8426a38891044caa5d65ff56241e19eeb5ccde2 Mon Sep 17 00:00:00 2001 From: Konstantin Nisht Date: Tue, 1 Jul 2025 10:36:36 +0200 Subject: [PATCH] [threading] IJPL-184084: Temporarily add read access to paint method of markdown components GitOrigin-RevId: e0c0ec315b6464891b43f7403b6d29af519fd9ec --- .../presentation/HorizontalBarPresentation.kt | 17 ++++++++++------- .../presentation/VerticalBarPresentation.kt | 19 +++++++++++-------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/HorizontalBarPresentation.kt b/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/HorizontalBarPresentation.kt index 28f8ea0aa93a..5817e0afa1a3 100644 --- a/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/HorizontalBarPresentation.kt +++ b/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/HorizontalBarPresentation.kt @@ -14,6 +14,7 @@ import com.intellij.openapi.actionSystem.DataSink import com.intellij.openapi.actionSystem.impl.ToolbarUtils import com.intellij.openapi.application.ModalityState import com.intellij.openapi.application.invokeLater +import com.intellij.openapi.application.runReadAction import com.intellij.openapi.command.executeCommand import com.intellij.openapi.editor.Document import com.intellij.openapi.editor.Editor @@ -78,13 +79,15 @@ internal class HorizontalBarPresentation(private val editor: Editor, private val get() = boundsState.height override fun paint(graphics: Graphics2D, attributes: TextAttributes) { - if (isInvalid) { - return - } - graphics.useCopy { local -> - GraphicsUtil.setupAntialiasing(local) - GraphicsUtil.setupRoundedBorderAntialiasing(local) - paintBars(local) + runReadAction { + if (isInvalid) { + return@runReadAction + } + graphics.useCopy { local -> + GraphicsUtil.setupAntialiasing(local) + GraphicsUtil.setupRoundedBorderAntialiasing(local) + paintBars(local) + } } } diff --git a/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/VerticalBarPresentation.kt b/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/VerticalBarPresentation.kt index d31ca3721e1c..a449cab91628 100644 --- a/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/VerticalBarPresentation.kt +++ b/plugins/markdown/core/src/org/intellij/plugins/markdown/editor/tables/ui/presentation/VerticalBarPresentation.kt @@ -13,6 +13,7 @@ import com.intellij.openapi.actionSystem.DataSink import com.intellij.openapi.actionSystem.impl.ToolbarUtils import com.intellij.openapi.application.ModalityState import com.intellij.openapi.application.invokeLater +import com.intellij.openapi.application.runReadAction import com.intellij.openapi.command.executeCommand import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.markup.TextAttributes @@ -108,15 +109,17 @@ internal class VerticalBarPresentation( if (editor.isDisposed || boundsState == initialState) { return } - SlowOperations.knownIssue("IJPL-162800").use { - if (!row.isValid) { - return + runReadAction { + SlowOperations.knownIssue("IJPL-162800").use { + if (!row.isValid) { + return@runReadAction + } + } + graphics.useCopy { local -> + GraphicsUtil.setupAntialiasing(local) + GraphicsUtil.setupRoundedBorderAntialiasing(local) + paintRow(local, rowLocation) } - } - graphics.useCopy { local -> - GraphicsUtil.setupAntialiasing(local) - GraphicsUtil.setupRoundedBorderAntialiasing(local) - paintRow(local, rowLocation) } }