From 4c4b536e70405006eddd0b618c8a434fe75a7133 Mon Sep 17 00:00:00 2001 From: "Anna.Gromova" Date: Fri, 21 Mar 2025 12:34:49 +0100 Subject: [PATCH] xnext button look fix GitOrigin-RevId: dec0074a01298fa996cb4e01368f446817ae3c42 --- .../impl/InternalUICustomization.kt | 2 ++ .../actions/toolbar/XNextActionToolbar.kt | 21 +------------------ .../toolbar/XNextToolWindowButtonLook.kt | 7 ++++++- 3 files changed, 9 insertions(+), 21 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/application/impl/InternalUICustomization.kt b/platform/platform-impl/src/com/intellij/openapi/application/impl/InternalUICustomization.kt index 716273c29db1..fa327cb884fe 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/impl/InternalUICustomization.kt +++ b/platform/platform-impl/src/com/intellij/openapi/application/impl/InternalUICustomization.kt @@ -60,6 +60,8 @@ open class InternalUICustomization { else StripesUxCustomizer () + open fun installBackgroundUpdater(component: JComponent) {} + open fun frameHeaderBackgroundConverter(color: Color?): Color? = color open fun transformGraphics(component: JComponent, graphics: Graphics): Graphics = graphics diff --git a/platform/platform-impl/src/com/intellij/toolWindow/xNext/toolbar/actions/toolbar/XNextActionToolbar.kt b/platform/platform-impl/src/com/intellij/toolWindow/xNext/toolbar/actions/toolbar/XNextActionToolbar.kt index 2124893487d6..be8e7b763254 100644 --- a/platform/platform-impl/src/com/intellij/toolWindow/xNext/toolbar/actions/toolbar/XNextActionToolbar.kt +++ b/platform/platform-impl/src/com/intellij/toolWindow/xNext/toolbar/actions/toolbar/XNextActionToolbar.kt @@ -1,16 +1,12 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.toolWindow.xNext.toolbar.actions.toolbar -import com.intellij.ide.ui.LafManagerListener import com.intellij.openapi.actionSystem.ActionToolbar import com.intellij.openapi.actionSystem.impl.ActionToolbarImpl -import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.impl.InternalUICustomization import com.intellij.toolWindow.xNext.toolbar.actions.XNextToolbarGroup import com.intellij.util.ui.JBUI import com.intellij.util.ui.JBUI.CurrentTheme.Toolbar.mainToolbarButtonInsets -import com.intellij.util.ui.launchOnShow -import kotlinx.coroutines.awaitCancellation internal class XNextActionToolbar : ActionToolbarImpl ("XNextStatusBar", XNextToolbarGroup(), true){ init { @@ -18,21 +14,6 @@ internal class XNextActionToolbar : ActionToolbarImpl ("XNextStatusBar", XNextTo setMinimumButtonSize { ActionToolbar.experimentalToolbarMinimumButtonSize() } setActionButtonBorder(JBUI.Borders.empty(mainToolbarButtonInsets())) - launchOnShow("XNextActionToolbar") { - try { - ApplicationManager.getApplication().messageBus.connect(this).subscribe(LafManagerListener.TOPIC, LafManagerListener { - updateBackground() - }) - awaitCancellation() - } finally { - } - } - updateBackground() - } - - private fun updateBackground() { - InternalUICustomization.getInstance()?.getCustomMainBackgroundColor()?.let { - background = it - } + InternalUICustomization.getInstance()?.installBackgroundUpdater(this) } } diff --git a/platform/platform-impl/src/com/intellij/toolWindow/xNext/toolbar/actions/toolbar/XNextToolWindowButtonLook.kt b/platform/platform-impl/src/com/intellij/toolWindow/xNext/toolbar/actions/toolbar/XNextToolWindowButtonLook.kt index f2d15ad09b7c..9c5a51c44bce 100644 --- a/platform/platform-impl/src/com/intellij/toolWindow/xNext/toolbar/actions/toolbar/XNextToolWindowButtonLook.kt +++ b/platform/platform-impl/src/com/intellij/toolWindow/xNext/toolbar/actions/toolbar/XNextToolWindowButtonLook.kt @@ -48,4 +48,9 @@ class XNextToolWindowButtonLook : HeaderToolbarButtonLook() { } } - } \ No newline at end of file + + override fun paintBackground(g: Graphics, button: ButtonType?) where ButtonType : JComponent?, ButtonType : ActionButtonComponent? { + val g = IdeBackgroundUtil.getOriginalGraphics(g) + super.paintBackground(g, button) + } +} \ No newline at end of file