From 1cf17a0f781e97b4d18f9003f4f79d94ca16534b Mon Sep 17 00:00:00 2001 From: Michael Krausse Date: Sat, 25 Jul 2026 22:48:38 +0200 Subject: [PATCH 1/2] remove internal api usage --- .gitignore | 1 + .../ehmkah/projects/imgdiff/ImgDiffViewer.kt | 22 +++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 35f8928..c8e4d50 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ build/ out/ .DS_Store .gradle/ +.intellijPlatform diff --git a/src/main/kotlin/de/ehmkah/projects/imgdiff/ImgDiffViewer.kt b/src/main/kotlin/de/ehmkah/projects/imgdiff/ImgDiffViewer.kt index 87cc6ca..8842c11 100644 --- a/src/main/kotlin/de/ehmkah/projects/imgdiff/ImgDiffViewer.kt +++ b/src/main/kotlin/de/ehmkah/projects/imgdiff/ImgDiffViewer.kt @@ -7,6 +7,8 @@ import com.intellij.diff.tools.util.ThreeDiffSplitter import com.intellij.openapi.ui.DialogBuilder import org.jetbrains.annotations.NotNull import java.awt.BorderLayout +import java.awt.Component +import java.awt.Container import java.awt.event.ActionEvent import java.awt.event.ActionListener import javax.swing.* @@ -24,14 +26,30 @@ class ImgDiffViewer(context: @NotNull DiffContext, request: @NotNull DiffRequest fun showBlinkingDiff(imageData: ByteArray) { - val component: ThreeDiffSplitter = myContentPanel.getComponent(0) as ThreeDiffSplitter - val contentPanel = component.getComponent(3) as JPanel + val splitter = findComponentOfType(component) + ?: return + val contentPanel = splitter.getComponent(3) as JPanel while (contentPanel.componentCount > 0) { contentPanel.remove(0) } addBlinkingDiff(contentPanel, imageData) } + private inline fun findComponentOfType(root: Component): T? = + findComponentOfType(root, T::class.java) + + private fun findComponentOfType(root: Component, type: Class): T? { + if (type.isInstance(root)) { + return type.cast(root) + } + if (root is Container) { + for (child in root.components) { + findComponentOfType(child, type)?.let { return it } + } + } + return null + } + fun addBlinkingDiff(panel: JPanel, imageData: ByteArray) { panel.layout = BorderLayout() From d7efe96eeea4527f53f75eaf6c02e1da07551b78 Mon Sep 17 00:00:00 2001 From: Michael Krausse Date: Sat, 25 Jul 2026 22:51:15 +0200 Subject: [PATCH 2/2] remove internal api usage --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 190208d..e27f7f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - update dependencies - upgrade to gradle 9.x - upgrade to intellij 2026.2 +- removed usage of internal intellij api ## [1.11.0]