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)