From ad6d52df3b0fa876ceaa004fbd733557ad5a8745 Mon Sep 17 00:00:00 2001 From: Pavel Porvatov Date: Thu, 6 Nov 2025 11:44:35 +0100 Subject: [PATCH] [ui] IJPL-215581 Light Islands: 'Write Thread' widget has black background GitOrigin-RevId: b15f8a29e2a88c284865707ec4e3927dfaa094c8 --- .../status/WriteThreadIndicatorWidgetFactory.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/WriteThreadIndicatorWidgetFactory.kt b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/WriteThreadIndicatorWidgetFactory.kt index 69f9748a4d4b..f43455ae2010 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/WriteThreadIndicatorWidgetFactory.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/WriteThreadIndicatorWidgetFactory.kt @@ -13,10 +13,12 @@ import com.intellij.openapi.wm.StatusBar import com.intellij.openapi.wm.StatusBarWidget import com.intellij.openapi.wm.StatusBarWidgetFactory import com.intellij.platform.ide.CoreUiCoroutineScopeHolder +import com.intellij.ui.ExperimentalUI import com.intellij.ui.JBColor import com.intellij.ui.UIBundle import com.intellij.util.ThreeState import com.intellij.util.cancelOnDispose +import com.intellij.util.ui.JBUI import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -94,6 +96,16 @@ private class WriteThreadWidget : CustomStatusBarWidget { override fun ID(): String = ID private inner class MyComponent : JPanel() { + + init { + if (ExperimentalUI.isNewUI()) { + isOpaque = false + + // Don't allow hover be inside the widget + border = JBUI.Borders.empty() + } + } + override fun getPreferredSize(): Dimension = WIDGET_SIZE override fun getMinimumSize(): Dimension = WIDGET_SIZE @@ -106,6 +118,10 @@ private class WriteThreadWidget : CustomStatusBarWidget { return } + if (ExperimentalUI.isNewUI()) { + g.translate((width - WIDGET_SIZE.width) / 2, (height - WIDGET_SIZE.height) / 2) + } + for ((xOffset, stats) in statsDeque.withIndex()) { g.color = JBColor.GRAY g.fillRect(xOffset, 0, 1, WIDGET_SIZE.height)